正则表达式允许超过指定的Charecters

时间:2016-02-11 17:28:01

标签: javascript regex

HI我是正则表达的新手,我尝试创建基于以下条件的正则表达式

  1. 允许最多9个字符
  2. First Charecter必须是大写
  3. Ending Charecter必须为0-9
  4. 必须包含以下特殊字符($,%,#)

    /^[A-Z][a-z0-9A-Z$#%]{3,9}(?=.*[#$%]).\d+$/
    
  5. 我的正则表达式有什么问题

2 个答案:

答案 0 :(得分:1)

^[A-Z](?=.*[#$%])[a-z0-9A-Z$#%]{1,7}\d$

您需要在开始时使用lookahead\d+应为\d{3,9}应为{1,7}

答案 1 :(得分:0)

打破正则表达式

/^[A-Z][a-z0-9A-Z$#%]{3,9}(?=.*[#$%]).\d+$/
^ # Match the start of a string
[A-Z] # First character must be a capital letter
[a-z0-9A-Z$#%]{3,9} # The next 3-9 characters must be alphanumeric or one of $, # and %.
(?=.*[#$%]) # Look-ahead, requiring that some character be one of $, # and % (note that this is strictly after the 3-9 character check)
. # Match any character
\d+ # Match one or more numeric digits
$ # Match the end of the string

因此,匹配"Aaaa$^55555555555555555"之类的字符串。

您需要更改前瞻,可能会在3-9字符检查之前将其移至。你也想让它的长度变小,因为你明确允许大写字母作为第一个字符,数字作为最后一个字符,所以你可能想要匹配1-7字符而不是3-9。