我正在使用以下正则表达式进行过滤
return this.href.match(/goto.com|xyz.com|loop.com/g);
但是,如果有一个名为 dogoto.com 的 url,它也会被过滤掉。我怎样才能改变我的正则表达式来禁止它?
我正在使用以下正则表达式进行过滤
return this.href.match(/goto.com|xyz.com|loop.com/g);
但是,如果有一个名为 dogoto.com 的 url,它也会被过滤掉。我怎样才能改变我的正则表达式来禁止它?
您可以\b
在其两侧添加(单词边界)。
return this.href.match(/\b(goto\.com|xyz\.com|loop\.com)\b/g);
这是一个快速演示:http: //jsfiddle.net/wQYuz/9/
^
匹配字符串的开头。你可以这样做:
return this.href.match(/^(goto\.com|xyz\.com|loop\.com)/g);
或者,您可以在那里匹配任何非字母数字字符:
return this.href.match(/\Wgoto\.com|\Wxyz\.com|\Wloop\.com/g);
此外,您可能想要转义您的点(在此处完成),因为否则点匹配任何字符,而不仅仅是它自己。
尝试:
/\b(goto\.com|xyz\.com|loop\.com)\b/g
\b
匹配单词的开头/结尾。它需要在单词周围加上括号,否则 doxyz.com 和 doloop.com 仍然匹配。