JavaScript - 在特定位置替换INT

时间:2011-11-04 15:35:16

标签: javascript replace position

我有一个基本上看起来像这样的int变量:

101137111

我想要做的是在特定点替换INT。所以,例如,如果我想用9更改7,我将如何实现?请记住,我不想搜索7,因为之前可能有7个。

所以,另一个例子:

var number = 101137111;
var newNumber;

newNumber = number.replaceAtPosition('4') andReplaceWith (9);

所以现在应该将3更改为9

4 个答案:

答案 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);

观看此直播演示:

http://jsfiddle.net/gion_13/m86yt/

答案 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;

所以基本上,转换为字符串,替换然后转换回来。

然而,优雅的解决方案将使用数字位操作,因为它更快。 (不要问我怎么做点魔术!)