我目前遇到一个似乎无法解决的问题。
var amount = "$ 75.00 USD";
我只想要 75.00 部分。我尝试了以下方法:
var new_str = amount.split(" ");
这在 Chrome 中给了我以下结果:
0:“75.00 美元” 1:“美元”
所以我找到了另一种解决方法:
var new_str = amount.substring(amount.indexOf(' '), 2).replace(',','');
这给了我 75.00,正如我在 Chrome 和 FF 中想要的那样。
问题是在 IE 中它给了我 0。
但是,当我尝试时
var new_str = amount.split(" ");
在 IE 中
0:“$” 1:“75.00” 2:“美元”
我只是想找到一个对两者都适用的函数..我当然可以创建一个 if 语句,但我只是认为 split 应该起作用..
还有其他人遇到过这个问题吗?
最佳关
最佳答案
与@mbojko解决方案类似,但我们寻找数字 - 点 - 数字模式,而不是剥离非数字值:
const amount = "$ 75.00 USD $ 80.01 EUR";
const matches = amount.match(/\d+\.?\d*/g);
console.log(matches[0]);
console.log(matches[1]);
如您所见,它也适用于多次重复。
关于当用于 amount = "$ 75.00 USD"时,Javascript string() 函数在 IE、FF 中返回正确的值,但在 chrome 中返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58558543/