Добрый день, дорогие друзья. Имеется строка "На пробеге до 45км расход топлива увеличивается на 2%, а при пробеге от 90км, пробег увеличивается на 2.5%" Требуется вычленить все процентные характеристики, прибавить к ним 1 и вернуть обратно строку с новыми параметрами. Т.Е. должно получиться : "На пробеге до 45км расход топлива увеличивается на 3%, а при пробеге от 90км, пробег увеличивается на 3.5%" Понимаю, что нужно пользоваться регулярками
/\d?\.?\d*%/g
Получаю массив всех значений, удаляю %, парсю как число, прибавляю 1, но как обратно засунуть эти значения в строку?
Предлагаю использовать *
вместо первого ?
, чтобы находить числа полностью, добавить группу для захвата самого числа и использовать функцию обратного вызова в качестве аргумента замены:
var rx = /(\d*\.?\d+)%/g;
var str = "На пробеге до 45км расход топлива увеличивается на 2%, а при пробеге от 90км, пробег увеличивается на 2.5%";
var res = str.replace(rx, function ($0, $1) {
return (Number($1) + 1) + "%";
});
console.log(res);
В функции обратного вызова $0
- это целое совпадение, $1
- значение первой захватывающей группы и т.д.
Чтобы увеличить все остальные числовые значения, можно расширить шаблон и дополнить код следующим образом:
var rx = /(\d*\.?\d+)(\s*(?:[кмсг]м|%))/g;
var str = "На пробеге до 45км расход топлива увеличивается на 2%, а при пробеге от 90км, пробег увеличивается на 2.5%";
var res = str.replace(rx, function ($0, $1, $2) {
return (Number($1) + 1) + $2;
});
console.log(res);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый деньКак реализовать парсер на языке php, чтобы получить контент с сайта, который отдается js
Как найти в коде страницы и удалить одинаковые фрагменты кода? Если быть точным - то вот такие фрагменты:
Получаю такую ошибку, при сборке проекта, на этапе компиляции css из sassНикак не пойму что это может означать ?