最少需要6个字符,最多100个字符。
不允许所有数字-111111 允许使用字母数字-abc123 允许使用特殊字符-_ @! 只允许使用字母-abcdefgh
AAAAAA =>OK
111111=> NOT OK
AAA123!=>OK
AAA12 => NOT ok minimum 6 characters
11111_ =>OK
我尝试过使用此正则表达式^ [a-zA-Z] [a-zA-Z0-9] * $。它可以正常工作,但我无法获得最小6或最大100的值。
^ [a-zA-Z] [a-zA-Z0-9] * $
不允许所有数字-111111 允许使用字母数字-abc123 允许使用特殊字符-_ @! 只允许使用字母-abcdefgh
答案 0 :(得分:1)
您的模式以匹配的[a-zA-Z]
开始。如果不需要a-zA-Z应该在开始时,但在整个比赛中至少应出现1次(如果支持),则可以使用正向先行声明6-100的长度。
然后,您可以确保至少匹配a-z或A-Z时间或左右两次匹配0+次[a-zA-Z0-9_@!-]*
之间的特殊字符:
^(?=.{6,100}$)[a-zA-Z0-9_@!-]*[a-zA-Z_@!-][a-zA-Z0-9_@!-]*$
^
字符串的开头(?=.{6,100}$)
声明右边的字符是6-100个字符(换行符除外)[a-zA-Z0-9_@!-]*
匹配0+次字符类中列出的内容[a-zA-Z_@!-]
匹配字符a-z或A-Z或不带数字的特殊字符[a-zA-Z0-9_@!-]*
匹配0+次字符类中列出的内容$
声明字符串的结尾另一种选择是正向和负向前瞻,1用于检查长度,另一(?!\d+$)
用于检查匹配项是否仅由数字组成:
^(?=.{6,100}$)(?!\d+$)[a-zA-Z0-9_@!-]+$
答案 1 :(得分:0)
您可以定义一个范围来满足您的长度要求。
^[a-zA-Z][\w\d!_\-@]{5,99}$
第一个字符是必填字符,其余符号的长度为5到99。
如Artner先生所评论,您可以详细说明您的需求,以便我们提供更好的答案。