我很绝望——我看不出我做错了什么。我尝试替换所有出现的 '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"));
alert("8969_8969".replace(/8969/g, "99"));
或者
var tmp = "8969"
alert("8969_8969".replace(new RegExp(tmp,"g"), "99"));
处理正则表达式的动态方式:
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"));
Javascript 不支持tmp的使用,它会尝试按字面意思使用 'tmp' 作为正则表达式模式。
"8969_8969".replace(new RegExp(tmp,'g'), "99")