同僚から正規表現の問題について尋ねられましたが、見つけて答えられないようです。
テキスト エディターで特定の長さのテキストを強調表示するために境界を使用していますが、問題を示すサンプル コードを次に示します。
<script type="text/javascript">
var str = "Alpha , Beta, Gamma Delta Epsilon, AAlphaa, Beta Alpha<br/>";
var rx = new RegExp('\bAlpha\b','gim');
document.write(str.replace(/\b(Alpha)\b/gim, '-- $1 --'));
document.write(str.replace(rx, '== $1 =='));
</script>
問題は、最初のリテラル str.replace は機能しますが、RegExp オプションは機能しません。
IE と FF で同じ動作をしていますが、その理由を知っている人はいますか?