Javascript正则表达式执行不匹配

标签 javascript regex

我正在 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/

相关文章:

javascript - 使用 find() 时返回 Object 的属性而不是 Object 本身

javascript - 这个函数有什么作用?奇怪的语法是什么?

javascript - Ajax html 文档 I18n

javascript - 使用 javascript 优雅地修改现有链接的参数

javascript - 使用 jquery 粘贴事件监听器在 contenteditable 中不起作用

javascript - 鼠标单击按钮时更改悬停颜色

javascript - 在页面加载时创建模态窗口

java - 正则表达式:删除除包含关键字 "univ"之外的所有标签

Python正则表达式捕捉两种评论

Java:分割逗号分隔的字符串但忽略引号中的逗号