Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery验证正则表达式_Jquery_Regex - Fatal编程技术网

Jquery验证正则表达式

Jquery验证正则表达式,jquery,regex,Jquery,Regex,嗨,我现在正在处理表单验证。如何制作数字、逗号和小数的正则表达式?或者简而言之,就是文本框中的货币价值 例如12100.10 jQuery(function($) { var validation_holder; $("form#register_form input[name='submit']").click(function() { var validation_holder = 0; var cost = $("form

嗨,我现在正在处理表单验证。如何制作数字、逗号和小数的正则表达式?或者简而言之,就是文本框中的货币价值

例如12100.10

jQuery(function($) {
    var validation_holder;

    $("form#register_form input[name='submit']").click(function() {

    var validation_holder = 0;

        var cost            = $("form#register_form input[name='n_unit_cost']").val();
        var cost_regex      = /^[0-9]+$/; // reg ex cost check  

        if(cost == "") {
            $("span.val_cost").html("This field is required.").addClass('validate');
            validation_holder = 1;
        } else {
            if(!cost_regex.test(cost)){ // if invalid phone
                $("span.val_cost").html("Integer Only is Allowed!").addClass('validate');
                validation_holder = 1;

            } else {
                $("span.val_cost").html("");
            }
        }
        if(validation_holder == 1) { // if have a field is blank, return false
            $("p.validate_msg").slideDown("fast");
            return false;
        }  validation_holder = 0; // else return true
        /* validation end */    
    }); // click end 

}); // jQuery End
比如:

^\d{1,3}(?:,?\d{3})*\.\d\d$

这里有一个正则表达式可以满足您的要求

var cost_regex = ^\d+(,\d{3})*(\.\d+)?$
这将匹配带或不带逗号的数字,带或不带数字的数字

说明:
\d+
将匹配一个或多个数字。这将匹配不带逗号的数字。然后是
(,\d{3})*
部分,该部分允许用户每三位使用逗号,但如果数字中存在愚蠢的逗号,则不匹配(例如,
1,,,2345
不匹配!)。然后,对于小数部分,
(\。\d+)?$
将匹配一个点和任意数量的数字。
使该部分在正则表达式中成为可选部分


这对于编写和测试正则表达式非常方便,我邀请您在下次想要验证模式时尝试一下

@theCoder我试过了,但不管用。我曾经试过一次,遇到了一些困难,然后我使用了numeric.js,它非常支持各种货币和货币locales@surname下次尝试使用regex101站点来执行您的正则表达式时,它使用起来非常简单,并且很好地使用了donevar cost_regex=/^\d{1,3}(?:,?\d{3})*\。\d\d$/;我试着这样做,但没有成功working@surname:哪种方式不起作用?你能举一些例子吗?@姓氏:对,但你在代码中尝试过我建议的正则表达式吗?哪些值不匹配?只允许显示“整数”警告消息。@姓:在替换正则表达式之前,它是正确的消息。
var cost_regex=/^[0-9]+$/与我的匹配。这将匹配
1#2
123A456789123