如何使用JavaScript的替换功能将匹配的数字除以100?

时间:2016-11-10 13:34:44

标签: javascript regex

我试图在JavaScript的replace函数中将字符串格式的正则表达式匹配数除以100:

var number = "4354543"; 
var result = number.replace(/(\d+)/, '$1/100');
console.log(result);  -> Printing 4354543/100

答案应该是43545.43,而是我得到"4354543/100"

有可能实现这个目标吗?

4 个答案:

答案 0 :(得分:6)

可以使用正则表达式,如果这是你真正想要的 - 例如,假设您想要将较大字符串中的数字除以100。为此,您必须使用函数回调,它允许您以更复杂的方式操作捕获的组:

var number = "abc 4354543 xyz"; 
var result = number.replace(/\d+/g, function(val) {
    return +val/100;
});
console.log(result);  //abc 43545.43 xyz

答案 1 :(得分:4)

如果您知道输入字符串至少为3位数,一个简单的解决方案是在最后2位数之前插入小数点分隔符。

var number = "4354543"; 
var result = number.replace(/(\d+)(\d{2})/, '$1.$2');
console.log(result);

然而,使用函数作为.replace的第二个参数,正如the answer by James Thorpe所做的那样,为您提供了更大的灵活性。

答案 2 :(得分:1)

我认为你对正则表达式可以做什么感到困惑。

在你的情况下,你真的不需要正则表达式。只是做

var number = "4354543";
console.log(number/100);

您将看到您的期望,js会将字符串更改为数字(不用担心)

答案 3 :(得分:0)

Regexp 不适合数学运算。

使用Number javascript类。

在您的情况下

 const number = '5485454845'; // Wathever
 const result = Number(number) / 100;