Javascript 如何使用正则表达式从字符串中获取浮点值?

Javascript 如何使用正则表达式从字符串中获取浮点值?,javascript,html,regex,match,Javascript,Html,Regex,Match,我有一个字符串值,如下所示: "ZAR 200.15" var amountDueString = document.getElementById("amountDue").innerHTML; 使用regex,如何提取浮点值以进行计算 对于某些上下文,我使用javascript访问HTML元素的值,如下所示: "ZAR 200.15" var amountDueString = document.getElementById("amountDue").innerHTML; 然后我需要使

我有一个字符串值,如下所示:

"ZAR 200.15"
var amountDueString = document.getElementById("amountDue").innerHTML;
使用regex,如何提取浮点值以进行计算

对于某些上下文,我使用javascript访问HTML元素的值,如下所示:

"ZAR 200.15"
var amountDueString = document.getElementById("amountDue").innerHTML;
然后我需要使用正则表达式来只获取浮点值

var amountDue = amountDueString.match(---some regex---);
我想提取浮点值,以便将其与用户输入进行比较。

尝试以下操作:

(\d)+\.(\d+)

在记事本上测试+

您可以仅将数字与小数或数字与整数和小数部分匹配:

for(arr中的变量x=[“200.15”、“300.0”、“1.02”、“29.001”、“10”]){
//仅限小数部分
console.log(x,arr[x]。匹配(/(\d+)(\。\d+)?/g))
//整数+小数部分
console.log(x,arr[x]。匹配(/(\d+\.\d+/g))

}
使用正则表达式获取数字字符串,然后使用parseFloat将其转换为浮点数

for(arr中的变量x=[“200.15”、“20.0”、“21”、“22.2”、“22.20”]){
//仅限小数部分
console.log(parseFloat(arr[x].match(/(\d+)(\。\d+)?/g)))
}

我认为更好的方式是@anubhava评论的方式:

/\b\d+(?:。\d+)/

\b
断言单词边界处的位置(^\w |\w$|\w\w |\w\w)

\d+
匹配数字[0-9],
量词+
在一次和无限次之间,尽可能多次,根据需要回馈[贪婪]

量词?
在零到一次之间,尽可能多次,根据需要回馈[贪婪]

\。
与字符匹配。字面上

希望这有帮助


console.log(“ZAR 200.15.match(/\b\d+(?:。.d+)/)使用正则表达式查找浮点数,然后替换所有其他单词字符

var str = "\"ZAR 200.15\"";
var patt = /[^(\d+)\.(\d+)]/g;
var string = str.replace(patt,"");
window.alert(string);

在此处签出:

匹配
/\b\d+(?:\。\d+)/
谢谢。使用这个正则表达式和parseFloat(),我得到了期望的结果。