我正在 Chrome 中运行以下 JavaScript。当我期待“123456.78”时,它产生一个空白字符串。
var amt = "$123,456.78";
digitRegex = /(\d|\.)*/
amtarr = digitRegex.exec(amt);
amtstr = amtarr.join("");
alert(amtstr);
有什么想法吗?
<小时/>最终代码是这样的:
moneyRegex = /^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{1,2})?$/
amt = $("#txtAmt").val();
amtok = (amt.search(moneyRegex) != -1);
amtval = 0;
if (amtok == true) {
digitRegex = /[\d\.]+/g
amtarr = digitRegex.exec(amt);
amtstr = amtarr.join("");
alert(amtstr);
}
最佳答案
amtstr = amt.replace(/[$,]/g, "");
会给你你想要的。它会从字符串中删除逗号和美元符号,留下 123456.78
。
关于Javascript正则表达式执行不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841359/