正規表現で変数を使用するにはどうすればよいですか?
P粉763748806
P粉763748806 2023-08-23 15:12:16
0
2
632
<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>
P粉763748806
P粉763748806

全員に返信(2)
P粉141455512

Eric Wendelin が述べたように、次のことができます:

リーリー

これにより、 「正規表現の一致」が生成されます。ただし、str1 が "." の場合は失敗します。ピリオド "正規表現" に置き換えて、結果が "パターン マッチング正規表現" になることを期待していましたが、結果は... となります。 リーリー

これは、

"." は文字列ですが、RegExp コンストラクターでは、文字列文字内の各文字を表す改行以外の文字を表す正規表現として解釈されるためです。この目的のために、次の関数が役立つ場合があります: リーリー

次に、これを行うことができます:

リーリー

「パターン マッチング正規表現」

を生成します。

いいねを押す +0
P粉318928159

新しい RegExp オブジェクトを構築できます:

リーリー

この方法で正規表現オブジェクトを動的に作成できます。次に、次のようにします:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート