尝试为以下条件创建正则表达式,我已经尝试了一个正则表达式,它按预期工作,而不是一个条件,因为它不允许重复,甚至由特定的Char &分隔。
-
允许Alpha数字字符最小为12,最大为14
-
除&(只有一个)
-
不允许所有相同的字符,即使用&
-
长度在12到14之间是相同的,即使包括&
ex: 11111111111111不允许,因为所有的字符都是相同的
1111111&11111 not allowed as all are the same characters even & is there
111111111112 allowed
1111111&11112 allowed
ABC123567GHDG4 allowed
^(d)(?!1+$)(?=.{11,13}$)[0-9]*(?:[&][0-9]+)?$
除了1111111&11111
也尝试了下面的正则表达式,它工作的条件,因为它不允许相同的字符
但是它允许&字符串的开始和结束,不允许使用字母
^(?!&?(d)(?:&?1)+$)(?=.{12,14}$)d*(?:&d*)?$
不允许"&"
出现在字符串的开头和结尾并且需要允许Captial Alpha character
和numerics
同时存在
ABC123567GHDG4 allowed
ABC1235&67GHD allowed
ABCDEFGHIJKLR allowed
1254789563254 allowed
125478&563254 allowed
125478556325& not allowed as ends with &
&125478556325 not allowed as starts with &
ABCDEFGHIJKL& not allowed as ends with &
&ABCDEFGHIJKL not allowed as start with &
可以使用
^(?=.{12,14}$)(?!([a-zA-Zd])(?:&?1)+$)[a-zA-Zd]+(?:&[a-zA-Zd]+)?$
查看regex演示
细节:
^
-字符串 起始(?=.{12,14}$)
-字符串长度必须在12到14个字符之间(?!([a-zA-Zd])(?:&?1)+$)
-字符串不能有相同的字母数字字符,最终在任何位置用&
字符分隔[a-zA-Zd]+(?:&[a-zA-Zd]+)?
-一个或多个字母数字字符后跟一个&
字符后跟一个或多个字母数字字符的可选序列$
- end of string.
你可以试试这个模式:
/^([A-Z0-9])(?!(1|&)+$)(?=.{11,13}$)[A-Z0-9]*(?:[&][A-Z0-9]+)?$/gm
这是你的模式的修改版本,我只更新了负面前瞻性部分到(?!(1|&)+$)
(不允许重复第一个字母或'&'字母)。
看这里的演示