javascript - 正则表达式在 Chrome 中有效,但在 Firefox 中出错

标签 javascript google-chrome firefox

我有一个正则表达式如下:

var re = new RegExp('(?<!\r)\n', 'g');

在 Chrome 中运行良好, 但在 Firefox 中出现以下错误:
语法错误:无效的正则表达式组

它也适用于 Node.js

最佳答案

您可以使用 try/catch 表达式

try {
    var re = new RegExp('(?<!\r)\n', 'g');
}
catch() {
    var firefox = true;
    //add alternate RegExp
}

您还可以检查其用户代理:

if (navigator.userAgent.indexOf("Chrome") !== -1) {
    //Code that works on chrome
} else {
    //code for firefox
}

这是因为 chrome 支持look-behind 表达式,而 firefox 不支持。

来源:https://www.w3schools.com/https://developer.mozilla.org/

关于javascript - 正则表达式在 Chrome 中有效,但在 Firefox 中出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59992288/

相关文章:

javascript - 有没有办法用javascript解析svg文件

javascript - Sencha Touch 和 Cookie

javascript - 引导表中的 vue v-select

java - Headless Chrome --print-to-pdf 与亚洲字体

css - Chrome Mac 和 Chrome Window 的字体间距不同

javascript - 如何在页面加载时通过 Firebug 注入(inject) JavaScript 片段?

javascript - 用jquery(而不是mootools)模拟这个 slider 效果【横向 Accordion 效果】

javascript - 检查客户端是否可以访问资源的 RESTful 方法是什么?

javascript - HTML5 Canvas在Chrome上速度较慢,但​​在FireFox上速度较快

javascript - FF 13,IE 9 : JSON stringify/geolocation object