Javascript: добавьте +1 к числу, которое начинается с 0 (например, 01, 02, 03) и держите ноль - PullRequest
1 голос
/ 23 марта 2010

Мне нравится добавлять (+1) к числу. Но проблема в том, что моему номеру иногда может предшествовать 0. Как 01, 02, 03, 04. Поэтому мне нравится результат:

mockup01 + 1 = mockup02
mockup11 + 1 = mockup12

Как этого достичь? Пример того, как я мог бы использовать его, был бы, если бы у меня было имя файла mockup_01.htm и изменилось бы его на mockup_02.htm

Спасибо!

Ответы [ 3 ]

14 голосов
/ 23 марта 2010

Может быть, это

 next = (parseInt(number, 10) + 101).toString().substr(1)

чтобы сделать mockup_02.htm из mockup_01, попробуйте это

newName = fileName.replace(/\d+(?=\.)/, function(n) {
    return (parseInt(n, 10) + Math.pow(10, n.length) + 1).toString().substr(1)
});

это работает с числами любой длины, например, mockup_0001, mockup_000001 и т. д.

2 голосов
/ 23 марта 2010
function next_id(input) {
  var output = parseInt(input, 10)+1; // parse and increment
  output += ""; // convert to string
  while (output.length<2) output = "0"+output; // prepend leading zeros
  return output;
}

var id = "00";
for (var i=0; i<20; i++) {
  console.log(id);
  id = next_id(id);
}
1 голос
/ 23 марта 2010

Я не программист javascript, но кажется, что вы смешиваете представление и внутреннее представление. Если «01» - это строка с соответствующей целочисленной переменной, вы можете преобразовать строку в целое число, добавить 1, а затем создать новую строку с требуемым форматированием. Это иногда называют шаблоном модель-представление-контроллер. Модель является целочисленной переменной - она ​​моделирует внутреннее поведение чисел. Представление - это строка - оно представляет число в удобочитаемой форме. Контроллер обрабатывает числовые операции.

...