使用Boundaries时,使用连字符的正则表达式似乎已损坏?

时间:2014-05-21 14:26:52

标签: javascript regex string

我是否密集,或者边界似乎打破了JavaScript正则表达式中连字符的匹配?

var string1 = "example words";

/\bexample\b/.test(string1); // true (all good)

var string2 = "-example -words";

/\b-example\b/.test(string2); // false (confusion)

也许我误解了边界行为?

逃避连字符似乎也没有帮助...

2 个答案:

答案 0 :(得分:4)

这是因为\b是单词边界,而-或连字符已被视为非单词字符。你可以使用这个正则表达式:

/-example\b/.test('-example -words');
true

答案 1 :(得分:2)

问题是-不是"字符"。 \b匹配单词字符和非单词字符之间的边界。 -之前的空格与此定义不符。