我是否密集,或者边界似乎打破了JavaScript正则表达式中连字符的匹配?
var string1 = "example words";
/\bexample\b/.test(string1); // true (all good)
var string2 = "-example -words";
/\b-example\b/.test(string2); // false (confusion)
也许我误解了边界行为?
逃避连字符似乎也没有帮助...
答案 0 :(得分:4)
这是因为\b
是单词边界,而-
或连字符已被视为非单词字符。你可以使用这个正则表达式:
/-example\b/.test('-example -words');
true
答案 1 :(得分:2)
问题是-
不是"字符"。 \b
匹配单词字符和非单词字符之间的边界。 -
之前的空格与此定义不符。