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

我必须匹配给定variables的一些string。 说我有变数

var x = 'elseif testing'; 

现在我想从这个string获取值“testing”。 所以写了。

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

后来我意识到有时候我会得到string:

 var x = 'else if testing'; 

所以我写了expression式来匹配:

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

这适用于浏览器,但不在Node.js中。 任何原因为什么?

尝试没有double escapescharacter class

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

还加上i不区分大小写的search。

另外注意[\s+]也将匹配一个文字+因为内部的character class + (和许多其他的正则expression式特殊字符)被认为是文字加。

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

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