Чтобы делать подобные вещи, вы используете функцию обратного вызова функции replace
:
var str = "ID: 10101010101010 | Price 1: £4.54 | Price 2: £2.87";
var regex = /\d{1,8}(?:\.\d{1,8})/g; // Regex to ignore numbers greater than 8 digits, including decimals
var output = str.replace(regex, function(match) {
return 1.05 * match;
});
console.log(output);
Вы можете использовать parseFloat(match)
, а не просто match
, что зависит от *
приведения строки к номеру.
Ивы можете рассмотреть .toFixed(2)
, чтобы результат округлился и отформатировался в два места (в зависимости от того, хотите ли вы округлить, как оно округляется).Например:
var str = "ID: 10101010101010 | Price 1: £4.54 | Price 2: £2.87";
var regex = /\d{1,8}(?:\.\d{1,8})/g; // Regex to ignore numbers greater than 8 digits, including decimals
var output = str.replace(regex, function(match) {
return (1.05 * match).toFixed(2);
});
console.log(output);