Javascript 每当连续出现4个字母字符时,要过滤的正则表达式
当一行中写入4个字母字符时,不允许这样做。 例如: 一旦输入第四个字母字符,就会出现错误。Javascript 每当连续出现4个字母字符时,要过滤的正则表达式,javascript,regex,Javascript,Regex,当一行中写入4个字母字符时,不允许这样做。 例如: 一旦输入第四个字母字符,就会出现错误。 我试过: (/^[a-zA-Z]{3,}.+$/.test(value)) 输入abcd时:出现错误,工作正常。 abc1:它再次显示错误。此错误不正确。应允许此输入。只需在字符串中搜索[a-zA-Z]{4,},如果有任何匹配项,则字符串中一行有四个字母数字字母,如果没有匹配项,则允许该字符串。编辑 似乎您的要求如下: 您希望接受仅包含字母数字字符的字符串,并且不包含以4个或更多连续字母开头的字符串,并
我试过:
(/^[a-zA-Z]{3,}.+$/.test(value))
输入abcd时:出现错误,工作正常。abc1:它再次显示错误。此错误不正确。应允许此输入。只需在字符串中搜索
[a-zA-Z]{4,}
,如果有任何匹配项,则字符串中一行有四个字母数字字母,如果没有匹配项,则允许该字符串。编辑似乎您的要求如下:
您希望接受仅包含字母数字字符的字符串,并且不包含以4个或更多连续字母开头的字符串,并且不包含空字符串 在这种情况下,您的正则表达式应该如下所示:
/^(\\d|[a-zA-Z]{1,3}(\\d|$))/
v \_/ \___________/\_____/
| | | |
___| | | |
_______|_ _|___ _|_____ _|____________
|match the| |match| |match | |match either |
|beginning| |one | |1 to 3 | |a digit or the|
|of string| |digit| |letters| |end of srtring|
--------- ----- ------- --------------
这可以解释为:
Match the beginning of the string
followed by:
either: one digit
or : one to three letters
followed by:
either: one digit
or : the end of the string
示例代码:
var strArr = ["ABC", "ABCD", "ABC123DEFG", "ABCD1234"];
var regex = new RegExp("^(\\d|[a-zA-Z]{1,3}(\\d|$))");
for (var i = 0; i < strArr.length; i++) {
alert(strArr[i] + ": " + (regex.test(strArr[i]) ? "ALLOWED" : " NOT ALLOWED"));
}
var strArr=[“ABC”、“ABCD”、“ABC123DEFG”、“ABCD1234”];
var regex=new RegExp(“^(\\d|[a-zA-Z]{1,3}(\\d|$)”)”;
对于(变量i=0;i
另请参见此(*更新*)如果我理解您的意思,您希望有3个字母,然后所有其他字母 选择那个正则表达式:
^[a-zA-Z]{3}[^a-zA-Z]+$
如果您只想要字母后面的数字,请选择:
^[a-zA-Z]{3}[0-9]+$
我尝试过这个exp,但当我键入ABC1时,它显示了一个错误,第四个字符可以是数字,但不应该是字母。@user2315252转到并将[a-zA-Z]{4,}和ABCD和ABC1作为文本分别放在不同的行上。ABC123ABCD上述输入失败当您说“失败”时,您的意思是它返回了“不允许”吗?它就是这样设计的(因为“abc123abcd”中有4个连续的字母)。如果我误解了您的要求,请详细说明:)是否仅阻止以4个字母开头的字符串?字符串不应以4个字母开头,但是,任何3个字母后面跟任意数量的数字以及后面跟任意数量的字母或数字都允许如下组合:ABC11111ABBBBB12222:允许的abcd233jjhk1hh:不允许的AB87676JHGJHG89UIJHHA允许的,如果(/^([a-zA-Z]{3,}[a-zA-Z])+$/。测试(值))结果:错误。工作正常abc2:允许,工作正常ABC222768JHJHJH87YJHJH:所有工作正常abcd2:在这里,当我输入4个字母后的数字时,它就失败了,它不显示错误,但是它应该显示js error允许以数字开头的字符串吗?是的。不允许连续使用4个字母
^[a-zA-Z]{3}[0-9]+$