Panda Noir

JavaScript の限界を究めるブログです。

正規表現のアンカーについて

つい先日 \b がアンカーであると知って驚いたので共有。

(注意: \b[] で囲ってないときはアンカーですが、[] で囲うとアンカーではなく文字扱いになります)

アンカーとは

それ自体にはマッチせず、位置を示すものです。

マッチしないので、replaceで置換する時も対象になりません。

よく知られているアンカーには ^$ があります。これらは検索してもマッチしませんよね。なんとなく「アンカー」が何か掴めたでしょうか?

具体例

'JavaScript'.replace(/Java\b/, 'JAVA!'); // -> JavaScript
'Java is a god language'.replace(/Java\b/, 'JAVA!'); // -> JAVA! is a god language