【问题标题】:Regex for number plus decimal point and number Jquery数字加小数点和数字Jquery的正则表达式
【发布时间】:2017-01-05 02:50:06
【问题描述】:

$(document).on("input", "#money", function() {
  if (/^\d*(\.\d+)/g.test($(this).val())) {
    $(this).css("border", "1px solid rgba(0,0,0,.15)").removeClass("not");
  } else {
    $(this).css("border", "2px solid red").addClass("not");

  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="money" />

我想要一个货币价值的正则表达式。意思是第一个小数点和数字。小数点和下一个数字应该是可选的。

可接受的值:

100
100.00

现在它不接受如果没有小数点,它也接受多个点,例如:

100.12.1

【问题讨论】:

    标签: jquery regex


    【解决方案1】:

    试试这个正则表达式^\d*(?:\.\d{2})?$,它将匹配100100.00.00,但不匹配100.000100.00.0100.0。如果您想允许100.0,请使用^\d*(?:\.\d{1,2})?$

    • ^$ 分别匹配输入的开始和结束。这样可以避免匹配 foo100.00bar 之类的东西
    • \d* 匹配任意位数
    • (?:...)? 可选匹配组内的内容
    • \.\d{1,2} 匹配句点和一位或两位数字

    【讨论】:

    • 您能否为每个符号添加一些解释以供以后的读者阅读?
    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 2021-08-04
    • 2021-07-26
    • 2012-06-10
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多