正規表現で変数を使用するにはどうすればよいですか?
P粉763748806
2023-08-23 15:12:16
<p>JavaScript で <code>String.replaceAll()</code> メソッドを作成したいのですが、正規表現を使用するのが最もクリーンな方法だと思います。しかし、正規表現に変数を渡す方法がわかりません。これはすでに実行できており、<code>"B"</code> のすべてのインスタンスを <code>"A"</code> に置き換えます。 </p>
<pre class="brush:php;toolbar:false;">"ABABAB".replace(/B/g, "A");</pre>
<p>しかし、私は次のようなことをしたいです: </p>
<pre class="brush:php;toolbar:false;">String.prototype.replaceAll = function(replaceThis, withThis) {
this.replace(/replaceThis/g, withThis);
};</pre>
<p>しかし、どうやらこれはテキスト <code>"replaceThis"</code> を置き換えるだけのようです...では、この変数を正規表現文字列に渡すにはどうすればよいでしょうか? </p>
Eric Wendelin が述べたように、次のことができます:
リーリーこれにより、
これは、「正規表現の一致」が生成されます。ただし、str1 が
"."の場合は失敗します。ピリオド
を"正規表現" に置き換えて、結果が
"パターン マッチング正規表現"になることを期待していましたが、結果は...
となります。 リーリー"."
次に、これを行うことができます:は文字列ですが、RegExp コンストラクターでは、文字列文字内の各文字を表す改行以外の文字を表す正規表現として解釈されるためです。この目的のために、次の関数が役立つ場合があります:
リーリーリーリー
「パターン マッチング正規表現」を生成します。
新しい RegExp オブジェクトを構築できます:
リーリーこの方法で正規表現オブジェクトを動的に作成できます。次に、次のようにします:
リーリー