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(),我得到了期望的结果。