私が知りたいのは、RegExp オブジェクトで単語境界を使用する方法です。
例えば:
var reg = new RegExp("\bAB\b", "g");
これは機能しておらず、できません:
var reg = /\bAB\b/g;
後で AB を変数に置き換える必要があるためです。
他のすべてが RegExp オブジェクトで機能することは知っていますが、何らかの理由で単語境界が機能しません。この問題についてご協力いただきありがとうございます。:)
私が知りたいのは、RegExp オブジェクトで単語境界を使用する方法です。
例えば:
var reg = new RegExp("\bAB\b", "g");
これは機能しておらず、できません:
var reg = /\bAB\b/g;
後で AB を変数に置き換える必要があるためです。
他のすべてが RegExp オブジェクトで機能することは知っていますが、何らかの理由で単語境界が機能しません。この問題についてご協力いただきありがとうございます。:)
バックスラッシュをバックスラッシュでエスケープして、\b
がエスケープ文字としてではなくリテラルとして解釈されるようにし\b
ます。
var reg = new RegExp("\\bAB\\b", "g");
reg.test(' AB ');
// true
reg.test('aABb');
// false
追加のバックスラッシュがいくつか必要です
var reg = new RegExp("\\bAB\\b", "g");
これは文字列であり、バックスラッシュは次の文字をエスケープするため、バックスラッシュ自体をエスケープする必要があります。