gpt4 book ai didi

javascript - 如何使用javascript从带小数的字符串中提取数字

转载 作者:行者123 更新时间:2023-11-30 12:42:31 31 4
gpt4 key购买 nike

大家好,我正在尝试从看起来像这样的变量中提取数量。

var amountStr  = "iPhone ($45.00)";

我试过下面的代码来提取它

var amountNum= amountStr.replace( /^\D+/g, '');

输出结果如下

45.00)

有人可以告诉我应该如何以更简洁的方式删除最后一个 ')' 吗?

谢谢。

最佳答案

您的正则表达式中有一个“文本开头”标记。这就是它与点或括号不匹配的原因。

var amountNum= amountStr.replace( /\D+/g, '');

将替换字符串中的所有非数字。但是你需要你的点,因此应该使用:

var amountNum= amountStr.replace( /[^\d\.]+/g, '');

接下来,要确保您确实有一个数字(而不是字符串),以便您可以执行正确的添加,请使用:

var amountNum = parseFloat(amountStr.replace( /[^\d\.]+/g, ''));

但是,如果你有像“iPhone3 ($45.00)”这样的字符串,结果将是 345,而不是 45。你需要在这个字符串中准确地找到你需要的东西,而不是寻找你不需要的东西.一个例子是这样的:

var amountNum = parseFloat(amountStr.match( /\d+(\.\d+)?/g)[0]);

这也不适用于“iPhone3”,但至少你不会有 345,而只有 3。

所以只需查找最后一个数字,如下所示:

var amountNum = parseFloat(amountStr.match( /\d+(\.\d+)?/g).pop());

关于javascript - 如何使用javascript从带小数的字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914079/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com