Javascript 同时包含不超过3个字母的正则表达式不应接受1A1

Javascript 同时包含不超过3个字母的正则表达式不应接受1A1,javascript,jquery,regex,Javascript,Jquery,Regex,不应接受:1A1、AA11111、222AAA33A 仅允许3个字符,不允许超过3个字符 我试了一下,但失败了 var patt = new RegExp("([A-Za-z]){4}"); var result = patt.test(DLnumber); if (result == true) { alert("No more than three alphabets are allowed"); return false; } 您的正则表达式需要考虑字母之间的非字母。我会

不应接受:1A1、AA11111、222AAA33A 仅允许3个字符,不允许超过3个字符 我试了一下,但失败了

var patt = new RegExp("([A-Za-z]){4}");
var result = patt.test(DLnumber);
if (result == true) {
    alert("No more than three alphabets are allowed");
    return false;
}

您的正则表达式需要考虑字母之间的非字母。我会用这个正则表达式:

^(?!.*([a-z].*){4,}).*$


通过这种方式,您可以通过添加另一个
(?!…)
(?=…)

您的正则表达式需要考虑字母之间的非字母。我会用这个正则表达式:

^(?!.*([a-z].*){4,}).*$

这样,您可以通过添加另一个
(?!…)
(?=…)
轻松添加更多需求

试试这个。看演示。Loohead会确保任何角色都不会出现超过3次

试试这个。看演示。Loohead会确保任何角色都不会出现超过3次

您可以这样做:

if (/^(?:[^a-z]*[a-z]){4}/i.test(DLnumber)) {
    alert("No more than three alphabets are allowed");
    return false;
}
  • i修饰符使模式不区分大小写,因此所有模式的
    [a-z]
    [a-zA-z]
    相同,
    [^a-z]
    [^a-zA-z]
    相同
  • ^
    是字符串开头的锚(不需要,但在模式必须失败时,尤其要提高性能)
  • (?:…)
    是一个非捕获组(它什么也不做,它唯一的任务是将其他标记放在一起,然后您可以对所有组应用一个量词。)
  • (?:[^a-z]*[a-z]){4}
    表示一组零个或多个非字母,后跟一个字母,并重复4次
您可以这样做:

if (/^(?:[^a-z]*[a-z]){4}/i.test(DLnumber)) {
    alert("No more than three alphabets are allowed");
    return false;
}
  • i修饰符使模式不区分大小写,因此所有模式的
    [a-z]
    [a-zA-z]
    相同,
    [^a-z]
    [^a-zA-z]
    相同
  • ^
    是字符串开头的锚(不需要,但在模式必须失败时,尤其要提高性能)
  • (?:…)
    是一个非捕获组(它什么也不做,它唯一的任务是将其他标记放在一起,然后您可以对所有组应用一个量词。)
  • (?:[^a-z]*[a-z]){4}
    表示一组零个或多个非字母,后跟一个字母,并重复4次

我想这可能就是你想要的:

if (str.replace(/[^a-z]/gi, "").length>3) {
    alert("No more than three alphabets are allowed");
    return false;
}

它计算字符串中的字母字符…

我想这可能就是您要查找的:

if (str.replace(/[^a-z]/gi, "").length>3) {
    alert("No more than three alphabets are allowed");
    return false;
}

它计算字符串中的字母字符…

我认为这太复杂了。如果我们认为OP的模式是<代码> [AZ-Z] ,我认为“字母表”是任何字符。我猜我们只是被要求检查是否有三个以上的字符,这可以通过检查
/[a-z]/gi
的匹配数轻松测试。我认为这太复杂了。如果我们认为OP的模式是<代码> [AZ-Z] ,我认为“字母表”是任何字符。我猜我们只是被要求检查是否有超过三个字符,通过检查
/[a-z]/gi