正则表达式过滤器不完全匹配

时间:2013-11-14 16:16:06

标签: jquery regex

我正在使用以下正则表达式来过滤

 return this.href.match(/goto.com|xyz.com|loop.com/g);

然而,如果有一个名为dogoto.com的网址,那么它也会被过滤掉。如何更改我的正则表达式以禁止它?

http://jsfiddle.net/wQYuz/7/

3 个答案:

答案 0 :(得分:2)

您可以在其两侧添加\b(单词边界)。

return this.href.match(/\b(goto\.com|xyz\.com|loop\.com)\b/g);

这是一个快速演示:http://jsfiddle.net/wQYuz/9/

答案 1 :(得分:1)

^匹配字符串的开头。你可以这样做:

return this.href.match(/^(goto\.com|xyz\.com|loop\.com)/g);

或者,您可以在那里匹配任何非字母数字字符:

return this.href.match(/\Wgoto\.com|\Wxyz\.com|\Wloop\.com/g);

此外,你可能想要逃避你的点(在这里完成),因为否则点匹配任何角色,而不仅仅是它本身。

答案 2 :(得分:0)

尝试:

/\b(goto\.com|xyz\.com|loop\.com)\b/g

\b匹配单词的开头/结尾。它需要括号,否则doxyz.com和doloop.com仍会匹配。

Fiddle