0

这是代码:

 alert(oldVars);
 alert("change "+prevNumber+" to "+newNumber)
 newVars = oldVars.replace(prevNumber,newNumber);
 alert(newVars);

oldVars是一个包含一些文本和一个数字的字符串,例如"Product ID 39203".

prevNumber例如39203

39203我想改成200newNumber设置为200

oldVars节目警报"Product ID 39203"

"change"节目提醒"change 39203 to 200"

警告newVars永远不会出现,所以我假设替换代码中有错误。但是错误是什么?为什么我的代码不起作用?

我的目标是拥有"Product ID 200"

我使用变量而不是字符串/整数,因为数字因类别而异,因此我无法静态输入数字,因为我不知道它们是什么。

它在这里工作: http ://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_replace

只是不在我的代码中......

4

3 回答 3

-1

您的代码在这里工作正常:http: //jsfiddle.net/manishie/G7PQV/

你可能打错了什么。

Javascript:

var oldVars = "Product ID 39203";
var prevNumber = "39203";
var newNumber = "200";

alert(oldVars);
alert("change "+prevNumber+" to "+newNumber)
newVars = oldVars.replace(prevNumber,newNumber);
alert(newVars);
于 2013-10-05T20:41:17.970 回答
-1

这可能是因为您试图在字符串中查找整数。如果您首先将数字转换为字符串,.toString()则它应该可以工作。

示例:http ://codepen.io/skimberk1/pen/d448dbdf05c290feaddcdd510ec5d72d

于 2013-10-05T20:48:49.500 回答
-1
alert(oldVars);
alert("change "+prevNumber+" to "+newNumber)
newVars = oldVars.replace(prevNumber,newNumber);
alert(newVars);

有趣的。正如 manishie 所说,你很可能拼错了一些东西。当我遇到这样的错误时,我通常会重新检查我的代码并确保所有内容在语法上都是 100% 合理的,即使我选择的任何模式通常都有效。

所以,我的建议是添加';' 在......的最后:

alert("change "+prevNumber+" to "+newNumber)

因此:

alert("change "+prevNumber+" to "+newNumber);

我在 Revealing Module Pattern 中也遇到了类似的奇怪问题,其中键入:

$(document).ready(function() 
{
    console.log( "Hehe!" );
});

键入时抛出错误:

$(document).ready(function() {
    console.log( "Hehe!" );
});

..才不是。

于 2013-10-05T20:51:38.233 回答