正则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”],那么你可以修剪匹配元素的空白。