私は必死です - 私は何が間違っているのか分かりません。私は '8969'のすべての出現を置き換えようとしますが、私はいつも元の文字列を取得します(tmpが文字列かintかにかかわらず)。多分すでに遅すぎるかもしれませんが、おそらく私は目が見えません。変数値を正規表現パターンとして使用する方法
var tmp = "8969";
alert("8969_8969".replace(/tmp/g, "99"));
誰かが私を助けてくれますか?
私は必死です - 私は何が間違っているのか分かりません。私は '8969'のすべての出現を置き換えようとしますが、私はいつも元の文字列を取得します(tmpが文字列かintかにかかわらず)。多分すでに遅すぎるかもしれませんが、おそらく私は目が見えません。変数値を正規表現パターンとして使用する方法
var tmp = "8969";
alert("8969_8969".replace(/tmp/g, "99"));
誰かが私を助けてくれますか?
/
文字は、この場合の正規表現のための容器です。したがって、 'tmp'は変数としてではなく、リテラル文字列として使用されます。正規表現を扱う
var tmp = /8969/g;
alert("8969_8969".replace(tmp, "99"));
+1は本当に質問に答えています。 –
ありがとう、今私はそれがうまくいかなかった理由を理解する:) – user1000742
alert("8969_8969".replace(/8969/g, "99"));
又は
var tmp = "8969"
alert("8969_8969".replace(new RegExp(tmp,"g"), "99"));
私はこの作品を知っていますが、私は変数に値を持っています... でも、書き込む場合でも var tmp = 8969; 動作しません... – user1000742
@ user1000742。更新された – gdoron
** @ downvoterを参照してください。コメントをお願いしますか?** – gdoron
動的な方法:
var nRegExp = new RegExp("8969", 'g');
alert("8969_8969".replace(nRegExp, "99"));
/tmp/g
。これはフレーズ"tmp"
を探している正規表現です。動的正規表現を作成するには、new RegExp
を使用する必要があります。
alert("8969_8969".replace(new RegExp(tmp,'g'), "99"));
、それが正規表現パターンと、文字通り「TMP」を使用しようとします。
"8969_8969".replace(new RegExp(tmp,'g'), "99")
なぜ '/ tmp/g'という表現を使用しますか? – Lion