正则表达式,最少10个字符,包括1个数字和1个大写字母

时间:2013-09-19 09:54:11

标签: javascript jquery regex

我想使用jQuery.match()函数验证字符串。字符串必须包含

  1. 最少10个字符。
  2. 必须包含至少一个数字。
  3. 必须至少包含一个大写字母。
  4. 我该怎么做?谁能告诉我这样做的正则表达式?

    我已经有了这个:

    ^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
    

    但它只是这样验证,允许至少一个特殊字符,一个大写,一个小写(以任何顺序)。

3 个答案:

答案 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
  1. 确保至少有8个字符

  2. 确保有小写字符

  3. 确保有大写字符

  4. 确保有这些特殊字符。

  5. 要根据您的要求制作正则表达式,请进行一些更改:

    ^(?=.{10})(?=.*[0-9])(?=.*[A-Z]).*$
         ^^^^      ^^^^^      ^^^^^
          1          2          3
    
    1. 确保至少有10个字符

    2. 确保至少有一个数字。

    3. 确保至少有一个大写字母。

    4. 您可以使用以下内容缩短时间:

      ^(?=.*[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,}$

来源: