我必须匹配给定变量中的一些字符串。假设我有变量
var x = 'elseif testing';
现在我想从这个字符串中获取值“testing”。这么写的。
x.match(/^elseif(.*)/);
后来我意识到有时我确实得到了字符串:
var x = 'else if testing';
所以我写了表达式来匹配:
x.match(/^else[\s+]if(.*)/);
这在浏览器上运行良好,但在 Node.js 上运行不佳。有什么原因吗?
最佳答案
尝试不使用双重转义符
和字符类
:
x.match(/^else\s*if(.*)/i);
还添加了 i
用于不区分大小写的搜索。
另请注意 [\s+]
也将匹配文字 +
因为在 character class
+
中(和许多其他正则表达式特殊字符)被认为是文字加号。
关于javascript - 正则表达式适用于浏览器但不适用于 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527689/