我把一个字符串变量传递给这个regexp构造的模式.这在Chrome中非常有效,但在Safari中不起作用.

是否有一种方法可以将此代码转换为跨浏览器兼容的代码?非常感谢.

(e = e
  .split(new RegExp("(?<!\\w)" + t[l] + "(?!\\w)(?![^\\[\\]]*\\])", "gm"))
  .join(n)),
  1 == caseinsensitive &&
    (e = e.replace(
      new RegExp("(?<!\\w)" + t[l] + "(?!\\w)(?![^\\[\\]]*\\])", "gmi"),
      "[$&](" + n + ")"
    ));

推荐答案

你可以用

(e = e
  .split(new RegExp("(?!\\B\\w)" + t[l] + "(?!\\w)(?![^\\][]*])", "g"))
  .join(n)),
  1 == caseinsensitive &&
    (e = e.replace(
      new RegExp("(?!\\B\\w)" + t[l] + "(?!\\w)(?![^\\][]*])", "gi"),
      "[$&](" + n + ")"
    ));

如果下一个字符是单词字符,则(?!\B\w)负前瞻需要单词边界位置.否则,如果下一个字符不是单词字符,则不需要单词边界.

Javascript相关问答推荐

在JavaScript中逐一播放随机生成的音频文件数组

追踪执行顺序

JavaScript .Click()函数不起作用

如何使用JavaScript动态地将CSS应用于ToDo列表?

Vue Quill css仅应用于我的第一个Quill Editor组件+如何自定义工具栏

在JavaScript中,是否有一种方法可以创建自定义thable,在等待某些代码后自动触发它?

如何在Connect 4游戏中 for each 玩家使用位板寻找7形状?

为什么这个JS模块在TypeScript中使用默认属性导入?""

Chromium会将URL与JS一起传递到V8吗?

更改JSON中使用AJAX返回的图像的路径

如何从URL获取令牌?

无法访问Vue 3深度监视器中对象数组的特定对象值'

如何通过使用vanilla JS限制字体大小增加或减少两次来改变字体大小

Webpack在导入前混淆文件名

我想将Sitecore搜索面过滤器从多个转换为单个

MongoDB受困于太多的数据

输入的值的类型脚本array.排序()

postman 预请求中的hmac/sha256内标识-从js示例转换

如果对象中的字段等于某个值,则从数组列表中删除对象

如何使用puppeteer操作所有选项