JavaScript - заменить INT в определенной позиции - PullRequest
1 голос
/ 04 ноября 2011

У меня есть переменная типа int, которая в основном выглядит примерно так:

101137111

Что я хочу сделать, это заменить INT в определенной точке. Так, например, если бы я хотел изменить 7 на 9. Как бы я этого достиг? Имея в виду, что я не хочу искать 7, потому что раньше могли быть 7.

Итак, еще один пример:

var number = 101137111;
var newNumber;

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

так что теперь следует изменить 3 на 9

Ответы [ 4 ]

2 голосов
/ 04 ноября 2011

Вы можете легко адаптировать ответ Джема Калионку под свои нужды; Преобразуя ваш номер в строку, затем вызывая функцию 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 голос
/ 04 ноября 2011
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/

0 голосов
/ 04 ноября 2011
var number = 101137111;
var newNumber = number.toString();
newNumber[4] = 9;
newNumber = +newNumber;

Таким образом, в основном, конвертировать в строку, заменить, а затем конвертировать обратно.

Однако элегантное решение будет использовать битовую манипуляцию с числом, потому что это быстрее. (Не спрашивайте меня, как сделать немного магии!)

0 голосов
/ 04 ноября 2011

приведите его к строке и замените символы, которые вы хотите, один за другим.

используйте toString (), чтобы получить int в строку

и вот введение для поиска и замены символов> http://forums.techguy.org/software-development/680103-javascript-search-replace-single-characters.html

После того, как сделано, приведите обратно к int!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...