在检查字符串是否至少有5位数字时,没有字母或特殊字符会产生意外结果

While checking whether a string minimum 5 digits, no alpha nor special characters gives unexpected results

本文关键字:特殊字符 结果 意外 是否 字符串 检查 数字 5位      更新时间:2023-09-26

我正在检查一个字符串是否至少包含5位数字,没有字母或特殊字符
我的代码如下:

var re = /^[a-zA-Z!@#'$%'^'&*')'(+=._-]{5,}$/g;

但当我尝试使用prm= "5653636*""32266""256"

它总是返回false当我执行以下操作时:

re.test(prm)

查看字符串是否没有字母表[^a-zA-Z];^-表示NOT,[]用于匹配字符范围u可以使用length属性来查找长度。

下面的代码段将匹配一个没有字母表的字符串,并且它的长度大于5。

var _string  =  "1234567";
var re       =  /[^a-z]+/i;
if(re.text(_string)){ // true
}
if(_string.length > 5){ //true
}

鉴于我正确地满足了您的需求,我认为这就是您想要的:

[^a-zA-Z]{5,}

  • 至少5个字符
  • 没有字母字符(A-Z)
  • 允许使用数字、特殊字符和空白

如果你想只允许正则表达式中的特殊字符,你可以这样做:

[0-9!@'#'$%'^&'*')'('+='._-]{5,}