当用于 amount = "$ 75.00 USD"时,Javascript string() 函数在 IE、FF 中返回正确的值,但在 chrome 中返回正确的值

标签 javascript string google-chrome

我目前遇到一个似乎无法解决的问题。

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/

相关文章:

ruby - 用一个字符替换Ruby字符串中的多个字符

javascript - Chrome 扩展 - Chrome.storage - 为什么 chrome.storage.sync.get 返回未定义?

javascript - 与 Firefox 相比,在 Chrome 中选择文本路径不会选择预期的文本

google-chrome - 资源被解释为文档,但使用 MIME 类型应用程序/八位字节流 pdf 传输

javascript - 如何通过输入数值动态添加文本区域输入? AngularJs

java - 将文本字符串中的字符移动指定数量的位置

javascript - knockout : how to validate object observale

C - 如何使用 sscanf <int><string><int> 进行读取?

javascript - Node.js 中的后台进程

javascript - 如何从元素中删除重复的部分元素而不偏向于稍后出现的元素