q="AWORD"
を含む文字列があり、q="AWORD"
をq="THEWORD"
に置き換えたいとします。しかし、私はAWORDが何であるのかわかりません。文字列と正規表現を組み合わせて、値を知らずにパラメータを置き換えることは可能ですか?これはこれまで私が持っていたものです...Javascript:String replace problem
globalparam.replace('q="/+./"', 'q="AWORD"');
q="AWORD"
を含む文字列があり、q="AWORD"
をq="THEWORD"
に置き換えたいとします。しかし、私はAWORDが何であるのかわかりません。文字列と正規表現を組み合わせて、値を知らずにパラメータを置き換えることは可能ですか?これはこれまで私が持っていたものです...Javascript:String replace problem
globalparam.replace('q="/+./"', 'q="AWORD"');
あなたの持っているものは文字列であり、正規表現ではありません。私は、これはあなたが欲しいものだと思う:
globalparam.replace(/q=".+?"/, 'q="THEWORD"');
私はあなたが文字列と正規表現を「組み合わせる」しなければならない理由アイデアを得たのか分からないが、正規表現には、ワイルドカードの存在する必要はありません。 。正規表現は、ワイルドカードを含むことができるパターンに似ていますが、そうでなければ与えられた文字と一致するようにしようとします。
次のように上に示した式は動作します:
q="
:文字にq
、=
と"
と一致します。.+?"
:次の文字に一致する文字(.
)に一致します。"
。少なくとも1文字(+
)が必要であり、一致が貪欲でない(?
)、可能な限り少数の文字を一致させることを意味します。それ以外の場合は、.+"
を使用した場合は、最後のまでのすべての文字と一致します。フェリックスの答えはあなたのソリューションを提供しますが、あなたが実際に文字列を使用して、正規表現を構築したい場合は、それをこのように行うことができます。
var fullstring = 'q="AWORD"';
var sampleStrToFind = 'AWORD';
var mat = 'q="'+sampleStrToFind+'"';
var re = new RegExp(mat);
var newstr = fullstring.replace(re,'q="THEWORD"');
alert(newstr);
mat =
あなたが構築している正規表現、組み合わせた文字列または何を必要です。
re =
RegExpコンストラクタ、グローバル化、大文字と小文字の区別などをしたい場合はここで行います。
最後の行はstring.replace(RegExp,replacement);