为什么这个javascript取代不起作用? (不包含正则表达式)

时间:2013-10-05 20:36:04

标签: javascript replace alert

以下是代码:

 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

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

3 个答案:

答案 0 :(得分:-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);

答案 1 :(得分:-1)

这可能是因为你试图在字符串中找到一个整数。如果您首先使用.toString()将数字转换为字符串,那么它应该可以正常工作。

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

答案 2 :(得分:-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!" );
});

..没有。