正则expression式字边界在“ – ”

我有以下格式的string。

“ad60 ad60-12 ad60 12-ad60”

现在我只想在“ad60”被写入的地方find匹配。

我开始了

/ \ bad60 \ B / I

但是正则expression式发现“ – ”不是string的一部分。 返回4个匹配项。 我尝试了很多东西,但是他们都要么返回4场比赛,要么什么都不返回

任何forms的帮助,将不胜感激。

您可以使用:

var s = "ad60 ad60-12 ad60 12-ad60"; var r = s.replace(/(^|\s)ad60(?=\s|$)/g, "$1@@"); //=> @@ ad60-12 @@ 12-ad60 

这应该find从字母开始的任何单词

 /[az][az\d]+/i 

添加

如果你想find任何包含ad60string的话,试试这个

 /[az\d\-\_]*ad60[az\d\-\_]*/i 

但由空格分隔的单词不会得到结果

 "ad60 ad60-12 ad60 12-ad60".match(/(^ad60\s+)|(\s+ad60$)|(\s+ad60\s+)|(^ad60$)/ig); 

将导致[“ad60”,“ad60”],那么你可以修剪匹配元素的空白。