完全な単語にマッチさせるためにjavascriptのRegExpを使用しようとしていますが、それらの単語に句読点がある場合は機能しません。私。Javascript RegExp:単語の境界と句読点
(new RegExp("\\b"+RegExp.escape("why not")+"\\b", 'i')).test("why not you foolish")
正しく一致します。そして:
(new RegExp("\\b"+RegExp.escape("why not")+"\\b", 'i')).test("why nots you foolish")
正しく一致しません。問題は、単語が「?」で終わるときには機能しません:
(new RegExp("\\b"+RegExp.escape("why not?")+"\\b", 'i')).test("why not? you foolish")
何か提案がありますか?
注:私は脱出するために、この機能を使用しています:
# Escape characters for regexp
RegExp.escape = (text) ->
text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
は、あなたが自分で定義したRegExp.escape何かありますか?つまり、RegExpにはメソッド「エスケープ」はありません。[mdn](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/RegExp#Methods)もしそうなら、ソースを表示して助けてくれますかあなたはそこで問題を見つけます。 – wave
申し訳ありませんが、私はそれを含めるのを忘れてしまったので、私は上記のコードを更新しました。 – LMH
BTW:大丈夫ですが、余計ですRegExp.escape:for(; c <4096(for); for(&c); for ; c << = 4)r = "0" + r; "\\ u" + r;}); ' – kirilloid