正则表达式适用于浏览器,但不适用于Node.js

时间:2013-12-11 18:59:12

标签: javascript regex node.js

我必须匹配给定变量中的一些字符串。说我有变量

var x = 'elseif testing';

现在我希望从这个字符串中获取值“testing”。所以写了。

x.match(/^elseif(.*)/);

迟到我意识到有时候我会收到字符串:

var x = 'else if testing';

所以我写了表达式来匹配:

x.match(/^else[\s+]if(.*)/);

这适用于浏览器,但不适用于Node.js.有什么理由吗?

2 个答案:

答案 0 :(得分:2)

尝试不使用double escapescharacter class

x.match(/^else\s*if(.*)/i);

还为不区分大小写的搜索添加了i

另请注意,[\s+]也会匹配文字+,因为character class +(以及许多其他正则表达式特殊字符)被视为文字加号。

答案 1 :(得分:0)

如果你明确想要只匹配一个或零个空格,那么:

x.match(/^else\s?if(.*)/i);