【问题标题】:currency regex with decimal带小数的货币正则表达式
【发布时间】:2012-07-13 11:52:32
【问题描述】:

我需要帮助:我想在 javascript 中验证我的货币输入格式:

1 234,78(因此可能存在 1000 到 2 位小数之间的空格)。

例子:

50,25
50
1 150
1 150,44
1 000 001
1 000 001,25

你能帮帮我吗?

谢谢2

【问题讨论】:

  • regular-expressions.info 是开始学习正则表达式的好地方。
  • 当空格和逗号在您的输入中是允许的字符时,您需要一些更好的方法来分隔不同的示例。您可以编辑以将它们放在单独的行中、将它们放在引号中或在它们之间放置一个清晰的分隔符吗?
  • 允许多少个十进制摘要? 1个还是只有2个?
  • 允许 0,1 或 2 位小数
  • 是否允许前导零(例如012)?

标签: javascript regex currency


【解决方案1】:

^(\+|-)?(0|[1-9][0-9]{0,2}( [0-9]{3,3})*)(,[0-9]{1,2})?$

【讨论】:

    【解决方案2】:

    它已经过测试并且可以工作

    示例:9 999 999 999,99

    $('#amount').change(function() {

    $('tr:last').find("td:last").text(messages['amount invalid']).hide();

    var inputVal = $(this).val();   
    
    var patternMontant = /^\$?(([0-9]{0,10}))?\,[0-9]{2}$/;
    
    if(!patternMontant.test(inputVal)) {
    

    $('tr:last').find("td:last").text(messages['amount invalid']).show().css("color","re​​d");

     $(this).val('');   
    

    }

    });

    【讨论】:

      【解决方案3】:

      我觉得有点像 ->

      re.match(r"[0-9]{0,2}(\s[0-9]{3})*", str)
      

      应该可以。

      【讨论】:

      • 这不考虑逗号。
      【解决方案4】:

      使用jquery的autoNumeric插件非常好用。 当您在表单输入中键入时自动格式化货币和数字的插件

      首先 - 在标头中包含 jQuery.js 和 autoNumeric-1.9.19.js javascript 文件:

      第二 - 在 HTML/JSP 文档中插入表单和输入字段:

      第三 - 在单独的脚本中初始化 autoNumeric $('selector').autoNumeric('init'):

      jQuery(函数($) {

        $('#someID_defaults').autoNumeric('init', {aSign:',', pSign:'£', vMax:'99999.99' }); 
      

      });

      【讨论】:

        猜你喜欢
        • 2012-11-30
        • 1970-01-01
        • 2022-11-26
        • 2010-10-23
        • 1970-01-01
        • 2015-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多