Регулярное выражение для обнаружения и обновления строки (полезно для обновления версии файла в AssemblyInfo.cs) - PullRequest
1 голос
/ 15 мая 2009

У меня есть строка этого формата

1.0.x.0

Я должен написать регулярное выражение в javascript, которое автоматически увеличивает x - Как это сделать?

Обратите внимание, что указанная строка всегда будет иметь этот формат - нет необходимости проверять правильность формата ...

Ответы [ 2 ]

8 голосов
/ 15 мая 2009

Попробуйте это:

"1.0.123.0".replace(/(\d+\.\d+\.)(\d+)(\.\d+)/, function($0, $1, $2, $3) {
    return $1 + (parseInt($2) + 1) + $3;
});
2 голосов
/ 15 мая 2009

Почему это должно быть регулярное выражение? Обозначения последовательны и отличаются незначительно; регулярное выражение не обязательно.

function incrementStrN(str) {
    var split = str.split('.');
    split[2]++;
    return split.join('.');
}
incrementStrN("1.0.123.0"); // Returns "1.0.124.0"

Я знаю, что это выглядит не очень красиво, но это быстрее, чем использование регулярного выражения; плюс его проще настроить; например, вы могли бы реализовать его таким образом, чтобы можно было изменить увеличиваемый раздел: (см. @param sec)

function incrementStrN(str, sec) {
     var split = str.split('.');
     split[sec-1]++;
     return split.join('.');
}

incrementStrN("1.0.123.0", 1); // Returns "2.0.123.0"
incrementStrN("1.0.123.0", 3); // Returns "1.0.124.0"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...