Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Javascript 使用jQuery和正则表达式进行验证_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 使用jQuery和正则表达式进行验证

Javascript 使用jQuery和正则表达式进行验证,javascript,jquery,regex,Javascript,Jquery,Regex,对于以0开头的数字,我需要正则表达式,该数字的长度为11 我发现这个正则表达式适用于数字,但它不适用于长度和0 $('#myModal #transfer_charge_model_mob').keyup(function () { var inputVal = $(this).val(); var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/; if (!numericR

对于以0开头的数字,我需要
正则表达式
,该数字的长度为11

我发现这个正则表达式适用于数字,但它不适用于长度和0

$('#myModal #transfer_charge_model_mob').keyup(function () {
            var inputVal = $(this).val();
            var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
            if (!numericReg.test(inputVal)) {
                $('#myModal #transfer_charge_model_mob_lbl').text('please enter number');
                $(this).val('');
            }
            else {
                $('#myModal #transfer_charge_model_mob_lbl').text('');
            }
        });

您可以在没有正则表达式的情况下执行此操作

var x = $(this).val();
var y = x * 1;
if(!isNaN(y))
   if (x.charAt(0) === '0' && x.length == 11)
     //do whatever

您可以在没有正则表达式的情况下执行此操作

var x = $(this).val();
var y = x * 1;
if(!isNaN(y))
   if (x.charAt(0) === '0' && x.length == 11)
     //do whatever

您已将正则表达式过度复杂化:

^0\d{10}$

就足够了。

您已经将正则表达式过度复杂化了:

^0\d{10}$

就足够了。

看看我的评论有多受欢迎,把它转换成答案

请注意“打开”(“更改”)而不是按键

$('#transfer_charge_model_mob').on("change",function () {
   var inputVal = $(this).val();
   var txt = /^0\d{10}$/.test(inputVal)?"":'please enter number';     
   $('#transfer_charge_model_mob_lbl').text(txt);
   if (txt) $(this).val('');
 });
对于Keyup,您可以尝试


将我的评论转换为答案,看看它有多受欢迎

请注意“打开”(“更改”)而不是按键

$('#transfer_charge_model_mob').on("change",function () {
   var inputVal = $(this).val();
   var txt = /^0\d{10}$/.test(inputVal)?"":'please enter number';     
   $('#transfer_charge_model_mob_lbl').text(txt);
   if (txt) $(this).val('');
 });
对于Keyup,您可以尝试



/^0\d{10}$/将是我的第一次尝试,但我现在看到您在keyup上使用。我的会用在零钱上或者blur@mplungjan这将是最好的办法。因为对于每个keyup,函数都将被执行。@mplungjan您的评论回答了这个问题:),所以请回答这个问题。/^0\d{10}$/将是我的第一次尝试,但我现在看到您在keyup上使用了。我的会用在零钱上或者blur@mplungjan这将是最好的办法。因为对于每个键控,函数都将被执行。@mplungjan您的注释回答了这个问题:),所以请将此作为答案。y=x*1和isNaN()检查它是否是一个数字。字符串相乘将创建一个NaN,“正在键入”部分由keyUp处理,而z.length()则不是。我相信它是z.Length实际上你是对的,它去掉了前导零。在最后一位中必须使用x而不是z-固定y=x*1和isNaN()检查它是否是一个数字。字符串相乘将创建一个NaN,“正在键入”部分由keyUp处理,而z.length()则不是。我相信它是z.Length实际上你是对的,它去掉了前导零。在最后一点中必须使用x而不是z-修正很好的建议-与我的评论相同抱歉-我写这篇文章时没有注意到你的评论!很好的建议-和我的评论一样抱歉-我写这篇文章时没有注意到你的评论!很好的建议-与我的相同comment@mplungjan事实上我很抱歉。当我看到这个问题时,我正在尝试JSFIDLE。一旦我得到它,没有加载您的评论,我张贴作为答案。后来我看到了你的评论并回复了。@mplungjan谢谢!很高兴看到你的答案:)。很好的建议-与我的相同comment@mplungjan事实上我很抱歉。当我看到这个问题时,我正在尝试JSFIDLE。一旦我得到它,没有加载您的评论,我张贴作为答案。后来我看到了你的评论并回复了。@mplungjan谢谢!很高兴看到你的答案:)。我喜欢你的.on(“keyup”),限制输入字母。我喜欢你的.on(“keyup”),限制输入字母。