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

validate input value contain x numbers of numeric characters

本文关键字:数字字符 包含 输入 验证      更新时间:2023-09-26

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

例如:假设我需要输入值至少有5个数字字符

12345 - valid
AB12345 - valid
123456 - valid
AB312312 - valid
asd - not valid
213 - not valid

首先我尝试了input.length,但我不知道它是否有一个前导字母,所以length对我没有帮助

我应该如何用jquery或javascript做这个验证?

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

这个表达式的作用是;

  1. (?=)表示开始向前看
  2. (?:['d])表示匹配数字但不捕获它们
  3. {5}表示(?:['d])(匹配数字)做5次

"use strict";
let numbers = [ '12345', 'ABC12345', '123456', 'AB312312', 'asd', '213'];
numbers.forEach(number=> {
    if (/(?=(?:['d]){5})/.exec(number)) {
        console.log(number + " is valid.");
    };
});

使用正则表达式就可以了

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;
}

这样怎么样

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

If

inputValue.replace(/[^0-9]/g,"").length < 5

则输入字段无效