我有一个基本上看起来像这样的int变量:
101137111
我想要做的是在特定点替换INT。所以,例如,如果我想用9更改7,我将如何实现?请记住,我不想搜索7,因为之前可能有7个。
所以,另一个例子:
var number = 101137111;
var newNumber;
newNumber = number.replaceAtPosition('4') andReplaceWith (9);
所以现在应该将3更改为9
答案 0 :(得分:2)
您可以轻松调整Cem Kalyoncu's answer以满足您的需求;通过将您的数字转换为String,然后调用replaceAt()函数。
// Cem's code
String.prototype.replaceAt = function(index, char) {
return this.substr(0, index) + char + this.substr(index+char.length);
};
// End of Cem's code
var nb = 123456789;
var str = nb.toString();
str = str.replaceAt(5, '0'); // note the quotes around the number
答案 1 :(得分:1)
function replaceAtPosition(number,index,replacement){
number += '';//to string
number = number.substring(0,index) + replacement + number.substring(index+1);
return +number; // to int
}
使用它像:
var number = 101137111;
var newNumber = replaceAtPosition(number,4,9);
观看此直播演示:
答案 2 :(得分:0)
将其转换为字符串,逐个更改您想要的字符。
使用toString()将int转换为字符串
然后这是一个搜索和替换字符的介绍> http://forums.techguy.org/software-development/680103-javascript-search-replace-single-characters.html
完成后再回到int!
答案 3 :(得分:0)
var number = 101137111;
var newNumber = number.toString();
newNumber[4] = 9;
newNumber = +newNumber;
所以基本上,转换为字符串,替换然后转换回来。
然而,优雅的解决方案将使用数字位操作,因为它更快。 (不要问我怎么做点魔术!)