我正在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);
    }

最佳答案

你可以尝试

digitRegex = /(\d|\.)*/g


得到所有比赛。您还可以使用:

digitRegex = /[\d\.]+/g


对于您尝试做的事情应该没问题。

关于javascript - Javascript Regex Exec不匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6841359/

10-09 15:51