我必须匹配给定变量中的一些字符串。说我有变量
var x = 'elseif testing';
现在我希望从这个字符串中获取值“testing”。所以写了。
x.match(/^elseif(.*)/);
迟到我意识到有时候我会收到字符串:
var x = 'else if testing';
所以我写了表达式来匹配:
x.match(/^else[\s+]if(.*)/);
这适用于浏览器,但不适用于Node.js.有什么理由吗?
答案 0 :(得分:2)
尝试不使用double escapes
和character class
:
x.match(/^else\s*if(.*)/i);
还为不区分大小写的搜索添加了i
。
另请注意,[\s+]
也会匹配文字+
,因为character class
+
(以及许多其他正则表达式特殊字符)被视为文字加号。
答案 1 :(得分:0)
如果你明确想要只匹配一个或零个空格,那么:
x.match(/^else\s?if(.*)/i);