当4个字母字符连续出现时,Regex进行过滤
regex to filter whenever 4 alphabetical characters are present consecutively
不允许在一行中写入4个字母字符。如:
ABCD: error
ABC1: allowed
ABC1233...: allowed
只要键入第四个字母字符,就会出现错误。
我试过了:
(/^[a-zA-Z]{3,}.+$/.test(value))
在输入abcd:时,它给出错误,这是正常工作的
再次显示错误。这个错误不正确。
如果我理解你的话,你想有3个字母,然后其他的都是字母?
找到regex:
^[a-zA-Z]{3}[^a-zA-Z]+$
如果你只想要字母后面的数字,那就这样做:
^[a-zA-Z]{3}[0-9]+$
仅搜索[a-zA-Z]{4,}
的字符串,如果有任何匹配,则在字符串的一行中有四个字母数字字母,如果没有匹配,则允许字符串
EDIT
看来你的要求如下:
您希望接受仅包含字母数字字符的字符串,不包含开头为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"));
}
看到,这个更新(* *)短演示。
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- Regex代码只允许一个空格
- Regex匹配除“”之外的所有字符;.js”;
- 使用regex过滤每个数组项
- regex过滤单词长度最小的句子
- 在JS中使用Regex过滤Strings/URL
- 如果javascript被禁用,并且您希望在PHP或Regex中使用(XXX)XXX-XXXX,您如何过滤(和替换)电话
- Regex根据文本过滤图像
- 用于过滤JS代码的python regex
- 当4个字母字符连续出现时,Regex进行过滤
- Regex过滤掉某些字符组
- 尝试使用REGEX过滤多个值的字符串
- Regex过滤掉某些字符
- 用RegEx验证和过滤电子邮件地址
- Regex在angular中过滤YouTube视频
- 过滤和隐藏图像与jquery regex
- regex允许外部字符,同时过滤掉特殊字符
- java脚本Regex对单词进行过滤
- Regex不过滤文本