【问题标题】:jQuery Validate money field, accept spaces?jQuery 验证货币字段,接受空格?
【发布时间】:2015-04-10 14:19:30
【问题描述】:

我有一个用于货币字段的自定义验证器,它接受像

这样的值
12,00$
122.04$
12123123

现在,我想让它接受这些价值观:

1 200$
1 200,22$

所以接受空格。不幸的是,我不太擅长正则表达式

这是我的自定义验证器:

$.validator.addMethod("money", function(value, element) {
    return this.optional(element) || value.match(/^\$?(\d+(?:[\.\,]\d{1,2})?)\s?\$?$/);
}, "Not valid...");

感谢您的帮助

【问题讨论】:

    标签: jquery regex jquery-validate


    【解决方案1】:

    你可以使用这个正则表达式:

    ^\$?(\d+(?:\s\d+)*(?:[\.\,]\d{1,2})?)\s?\$?$
    

    我只在您的正则表达式中添加了(?:\s\d+)*,以允许在初始数字后有任意数量的带有空格的数字。请注意,您不必在字符类[\.\,] 中转义.,(它等于[.,])。

    这是demo

    试试

    $.validator.addMethod("money", function(value, element) {
        return this.optional(element) || value.match(/^\$?(\d+(?:\s\d+)*(?:[.,]\d{1,2})?)\s?\$?$/);
    }, "Not valid...");
    

    【讨论】:

      【解决方案2】:

      你可以使用下面的正则表达式。

      ^\$?\d+(?:[ ,]\d+)*(?:\.\d+)?\$?$
      

      DEMO

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多