変数の RegExp 値に渡し、単語境界を指す必要があります。変数値が含まれているかどうかを確認する文字列があります。変数値と単語境界属性として regexp に渡す方法がわかりません。
だから、このようなもの:
var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
問題を解決するためにいくつかの方法を試しましたが、まだできません:(
変数の RegExp 値に渡し、単語境界を指す必要があります。変数値が含まれているかどうかを確認する文字列があります。変数値と単語境界属性として regexp に渡す方法がわかりません。
だから、このようなもの:
var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
問題を解決するためにいくつかの方法を試しましたが、まだできません:(
これを使って:re = new RegExp("\\b" + sa)
@RobW が述べたように、. をエスケープする必要がある場合がありますsa
。
これを参照してください: Is there a RegExp.escape function in Javascript?
すべての出現箇所を取得する場合 ( g
)、大文字と小文字を区別せず ( i
)、別の単語内の単語にならないように境界を使用する場合 ( \\b
):
re = new RegExp(`\\b${sa}\\b`, 'gi');
例:
let inputString = "I'm John, or johnny, but I prefer john.";
let swap = "John";
let re = new RegExp(`\\b${swap}\\b`, 'gi');
console.log(inputString.replace(re, "Jack")); // I'm Jack, or johnny, but I prefer Jack.