ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で変数を使用して正規表現を動的に作成するにはどうすればよいですか?

JavaScript で変数を使用して正規表現を動的に作成するにはどうすればよいですか?

DDD
リリース: 2024-11-09 16:27:02
オリジナル
687 人が閲覧しました

How Can I Dynamically Create Regular Expressions with Variables in JavaScript?

JavaScript の変数を使用した動的正規表現

JavaScript の正規表現は、パターン マッチングと操作のための強力なツールを提供します。ただし、これらのパターンに変数を挿入するのは難しい場合があります。

次のコード スニペットを考えてみましょう。

function(input) {
    var testVar = input;
    string = ...
    string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}
ログイン後にコピー

このコードは、文字列内の特定のパターンのすべての出現を指定されたパターンに置き換えようとします。交換用の文字列。ただし、正規表現内で変数を直接連結できないため、失敗します。

解決策: テンプレート文字列の使用

ES6 JavaScript では、テンプレート文字列を利用できます。変数を使用して正規表現を動的に作成します。その方法は次のとおりです。

const regex = new RegExp(`ReGeX${testVar}ReGeX`);
...
string.replace(regex, "replacement");
ログイン後にコピー

この例では、RegExp コンストラクターは最初の引数としてテンプレート文字列を受け入れます。テンプレート文字列には、補間変数 testVar を含む元の正規表現パターンが含まれています。バックティック (``) はテンプレート文字列を示します。

ES6 と ES6 以前の比較

ES6 より前では、同じことを実現するには、より冗長なメソッドを使用する必要がありました。 result:

var regex = new RegExp("ReGeX" + testVar + "ReGeX");
...
string.replace(regex, "replacement");
ログイン後にコピー

古い構文も引き続き機能しますが、シンプルさと読みやすさの点でテンプレート文字列メソッドが推奨されます。

注意: 変数のエスケープ

挿入している変数に潜在的な悪意のあるコンテンツ (ユーザー入力など) が含まれている場合は、インジェクション攻撃を防ぐためにそれをエスケープする必要があることに注意することが重要です。エスケープには、escape() 関数または encodeURIComponent() 関数を使用できます。

以上がJavaScript で変数を使用して正規表現を動的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート