Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 验证输入值是否包含x个数字字符_Javascript_Jquery_Validation - Fatal编程技术网

Javascript 验证输入值是否包含x个数字字符

Javascript 验证输入值是否包含x个数字字符,javascript,jquery,validation,Javascript,Jquery,Validation,我需要验证一个输入字段,该字段应至少包含x个数字字符 比如说,我需要输入至少有5个数字字符的值 12345 - valid AB12345 - valid 123456 - valid AB312312 - valid asd - not valid 213 - not valid 首先,我尝试了input.length,但我不知道它是否有前导字母,所以length对我没有帮助 我应该如何使用jquery或javascript进行验证 使用正则表达式就可以了 function check(st

我需要验证一个输入字段,该字段应至少包含x个数字字符

比如说,我需要输入至少有5个数字字符的值

12345 - valid
AB12345 - valid
123456 - valid
AB312312 - valid
asd - not valid
213 - not valid
首先,我尝试了
input.length
,但我不知道它是否有前导字母,所以
length
对我没有帮助


我应该如何使用jquery或javascript进行验证

使用正则表达式就可以了

function check(str,x){
   var pattern = '^[a-zA-Z0-9]*[0-9]{'+x+'}[a-zA-Z0-9]*$';
   if(str.match(pattern)) return true;
   return false;
}

使用正则表达式就可以了

function check(str,x){
   var pattern = '^[a-zA-Z0-9]*[0-9]{'+x+'}[a-zA-Z0-9]*$';
   if(str.match(pattern)) return true;
   return false;
}

假设您正在验证5个数字,那么您可以使用正则表达式
/(?=(?:[\d]){5}

这个表达式的作用是:

  • (?=)
    表示开始向前看
  • (?:[\d])
    表示匹配数字,但不捕获它们
  • {5}
    表示
    (?:[\d])
    (匹配数字)执行5次
  • “严格使用”;
    让数字=['12345','ABC12345','123456','AB312312312','asd','213'];
    number.forEach(number=>{
    如果(/(?=(?:[\d]){5})/.exec(数字)){
    日志(编号+“有效”);
    };
    
    });
    假设您正在验证5个数字,那么您可以使用正则表达式
    /(?=(?:[\d]){5}

    这个表达式的作用是:

  • (?=)
    表示开始向前看
  • (?:[\d])
    表示匹配数字,但不捕获它们
  • {5}
    表示
    (?:[\d])
    (匹配数字)执行5次
  • “严格使用”;
    让数字=['12345','ABC12345','123456','AB312312312','asd','213'];
    number.forEach(number=>{
    如果(/(?=(?:[\d]){5})/.exec(数字)){
    日志(编号+“有效”);
    };
    });如果

    inputValue.replace(/[^0-9]/g,”)。长度<5
    
    那么输入字段无效。

    如果

    inputValue.replace(/[^0-9]/g,”)。长度<5
    

    那么输入字段是无效的。

    像这样的东西怎么样

    x = 5;
    myString = "AB12345";
    if (myString.replace(/[^0-9]/g,"").length >= x) {
        alert('valid');
    } else {
        alert('not valid');
    }
    

    看。

    像这样的怎么样

    x = 5;
    myString = "AB12345";
    if (myString.replace(/[^0-9]/g,"").length >= x) {
        alert('valid');
    } else {
        alert('not valid');
    }
    


    请参阅。

    这将查看输入的整个长度,而不仅仅是位数,不是吗?没错。等等,让我想想另一个对你有好处的解决办法。你也可以使用我的函数,其中
    str
    是字符串,
    x
    是最小发生次数,它不应该有我,而是最初发布问题的那个。哦,对不起,我的错。我想发布问题注释的人会看到输入的整个长度,而不仅仅是数字,不是吗?是的。等等,让我想想另一个对你有好处的解决办法。你也可以使用我的函数,其中
    str
    是字符串,
    x
    是最小发生次数,它不应该有我,而是最初发布问题的那个。哦,对不起,我的错。我认为另一种选择是将所有数字替换为零(即删除所有数字),然后比较原始字符串和新字符串的长度。这将告诉您提取了多少个数字(因此开始时有多少个)。删除所有非数字
    。替换(/\D+/g',)
    ,然后检查字符串的
    长度。@Tushar我正在寻找的另一种替代方法是将所有数字替换为零(即删除所有数字),然后比较原始字符串和新字符串的长度。这将告诉您提取了多少个数字(因此开始时有多少个)。删除所有非数字
    。替换(/\D+/g')
    ,然后检查字符串的
    长度。@t这就是我要查看的内容for@JanithCinthana让我知道这是否适合你。很高兴进一步讨论。提示:(目前)避免使用新的JS结构,如
    let
    箭头函数
    ——浏览器对此的支持不好。即使是
    array.prototype.forEach
    let
    箭头函数
    ——浏览器对此的支持不好。甚至
    array.prototype.forEach