10

変数の RegExp 値に渡し、単語境界を指す必要があります。変数値が含まれているかどうかを確認する文字列があります。変数値と単語境界属性として regexp に渡す方法がわかりません。

だから、このようなもの:

var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));

問題を解決するためにいくつかの方法を試しましたが、まだできません:(

4

2 に答える 2

14

これを使って:re = new RegExp("\\b" + sa)

@RobW が述べたように、. をエスケープする必要がある場合がありますsa

これを参照してください: Is there a RegExp.escape function in Javascript?

于 2012-09-30T17:17:31.487 に答える
7

すべての出現箇所を取得する場合 ( 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.
于 2018-06-13T02:11:39.973 に答える