0

私はこの場所を何度も検索しましたが、正規表現は機能しますが、動的に機能しないことに固執しています。

id_nameは、動的に選択される文字列です。次に、正規表現は一致を「vals」にある単一の変数に置き換える必要があります。何らかの理由で、変数なしで正規表現をコーディングすると、意図したとおりに機能します。正規表現オブジェクトへの変換に何か問題があると思います。

元の文字列:

obj = values.replace(/{name}(.*?){\/name}/, 'igm');

正規表現オブジェクト:

        re = '\/{' + id_name + '}(.*?){\\/' + id_name + '}\/';
        regexp = new RegExp(re, 'igm');
        obj = values.replace(regexp, vals);

前もって感謝します!

4

1 に答える 1

1

/コンストラクターを介して正規表現を構築している場合は、文字をエスケープする必要はなく、エスケープする必要もありません。

re = '{' + id_name + '}(.*?){/' + id_name + '}';
于 2012-07-12T08:40:43.567 に答える