0

私は絶望的です - 私は自分が何を間違っているのか分かりません。「8969」をすべて置き換えようとしましたが、常に元の文字列を取得します (tmp が文字列か整数かに関係なく)。もう手遅れかもしれないし、私は盲目なのかもしれない...

var tmp = "8969";
alert("8969_8969".replace(/tmp/g, "99"));

誰かが私を助けることができますか?

4

5 に答える 5

8

この/場合、文字は正規表現のコンテナです。したがって、「tmp」は変数としてではなく、リテラル文字列として使用されます。

var tmp = /8969/g;
alert("8969_8969".replace(tmp, "99"));
于 2012-05-01T21:40:42.260 に答える
5
alert("8969_8969".replace(/8969/g, "99"));

また

var tmp = "8969"
alert("8969_8969".replace(new RegExp(tmp,"g"), "99")); 

ライブデモ

于 2012-05-01T21:39:40.240 に答える
3

正規表現を動的に処理する方法:

var nRegExp = new RegExp("8969", 'g');
alert("8969_8969".replace(nRegExp, "99"));
于 2012-05-01T21:41:15.007 に答える
2

/tmp/g. これは、フレーズを検索する正規表現"tmp"です。new RegExp動的正規表現を作成するために使用する必要があります。

alert("8969_8969".replace(new RegExp(tmp,'g'), "99"));
于 2012-05-01T21:41:22.313 に答える
-1

Javascript は tmp の使用をサポートしていません。正規表現パターンとして文字通り「tmp」を使用しようとします。

"8969_8969".replace(new RegExp(tmp,'g'), "99")
于 2012-05-01T21:41:57.820 に答える