我想使用 jQuery.match() 函数验证字符串。字符串必须包含
- 最少 10 个字符。
- 必须包含至少一个数字。
- 必须包含至少一个大写字母。
我怎样才能做到这一点?谁能告诉我正则表达式来做到这一点?
我已经有了这个:
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
但它仅像这样进行验证,允许至少一个特殊字符,一个大写,一个小写(以任何顺序)。
我想使用 jQuery.match() 函数验证字符串。字符串必须包含
我怎样才能做到这一点?谁能告诉我正则表达式来做到这一点?
我已经有了这个:
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
但它仅像这样进行验证,允许至少一个特殊字符,一个大写,一个小写(以任何顺序)。
它不严格符合长度限制,因为您没有正确完成它。第一个前瞻 -(?=.{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
$
我不确定你是如何得到那个正则表达式的;它似乎被带到了某个地方......
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
^^^^ ^^^^^ ^^^^^ ^--------^
1 2 3 4
确保至少有 8 个字符
确保有小写字符
确保有大写字符
确保有那些特殊字符。
要根据您的要求制作正则表达式,请进行一些更改:
^(?=.{10})(?=.*[0-9])(?=.*[A-Z]).*$
^^^^ ^^^^^ ^^^^^
1 2 3
确保至少有 10 个字符
确保至少有一个数字。
确保至少有一个大写字母。
您可以使用以下方法将其缩短一点:
^(?=.*[0-9])(?=.*[A-Z]).{10,}$
^ # 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
IE:
^(?=.*\d)(?=.*[A-Z]).{10,}$
资源: