我想使用jQuery.match()函数验证字符串。字符串必须包含
我该怎么做?谁能告诉我这样做的正则表达式?
我已经有了这个:
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
但它只是这样验证,允许至少一个特殊字符,一个大写,一个小写(以任何顺序)。
答案 0 :(得分:5)
它并不严格符合长度限制,因为您没有正确完成。第一个预测 - (?=.{8,})
,只是测试最小长度为8
的字符串。请记住,由于环视是0长度断言,.{8,0}
之后的预测不会消耗任何字符。
事实上,您可以删除第一个预测,并在匹配时直接使用该量词。
试试这个正则表达式:
^(?=.*[A-Z])(?=.*[0-9]).{10,}$
分手:
^
(?=.*[A-Z]) # At least an uppercase alphabet
(?=.*[0-9]) # At least a numeral
.{10,} # Any character 10 or more times
$
答案 1 :(得分:1)
我不确定你是怎么得到那个正则表达式的;它似乎已被带到某个地方......
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
^^^^ ^^^^^ ^^^^^ ^--------^
1 2 3 4
确保至少有8个字符
确保有小写字符
确保有大写字符
确保有这些特殊字符。
要根据您的要求制作正则表达式,请进行一些更改:
^(?=.{10})(?=.*[0-9])(?=.*[A-Z]).*$
^^^^ ^^^^^ ^^^^^
1 2 3
确保至少有10个字符
确保至少有一个数字。
确保至少有一个大写字母。
您可以使用以下内容缩短时间:
^(?=.*[0-9])(?=.*[A-Z]).{10,}$
答案 2 :(得分:1)
^ # Start of group
(?=.*\d) # must contain at least one digit
(?=.*[A-Z]) # must contain at least one uppercase character
. # match anything with previous condition checking
{10,} # length at least 10 characters
$ # End of group
即:
^(?=.*\d)(?=.*[A-Z]).{10,}$
来源: