我试图在JavaScript的replace
函数中将字符串格式的正则表达式匹配数除以100:
var number = "4354543";
var result = number.replace(/(\d+)/, '$1/100');
console.log(result); -> Printing 4354543/100
答案应该是43545.43
,而是我得到"4354543/100"
。
有可能实现这个目标吗?
答案 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;