每当连续写入4个字母字符时,就不允许这样做。 例如:
ABCD: error
ABC1: allowed
ABC1233...: allowed
一旦键入第4个字母字符,就应该给出错误 我试过了:
(/^[a-zA-Z]{3,}.+$/.test(value))
在键入abcd时:它会出错,这是正常的 abc1:它再次显示错误。此错误不正确。应该允许这个输入。
答案 0 :(得分:1)
如果我理解你,你想要3个字母,然后其他所有字母作为字母?
去那个正则表达式:
^[a-zA-Z]{3}[^a-zA-Z]+$
如果您只想在信件后面输入数字,请执行以下操作:
^[a-zA-Z]{3}[0-9]+$
答案 1 :(得分:0)
只需搜索字符串[a-zA-Z]{4,}
,如果完全匹配则字符串中的行中有四个字母数字字母,如果没有匹配则允许该字符串。
答案 2 :(得分:0)
修改强>
似乎您的要求如下:
您希望接受包含仅字母数字字符且不的字符串,以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"));
}
另请参阅此(*更新*) short demo 。