次の正規表現を使用してフィルタリングしています
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 が一致します。