正则表达式 匹配 用户名/密码/Email/身份证

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41942774/article/details/83626715

通过正则表达式匹配 用户名/密码/Email/身份证

  • 用户名(4到16位,字母数字下划线,减号):

      /^[-_a-zA-Z0-9]{4,16}$/
    

    解释:在字符组中表示:匹配若干字符之一,这里就是匹配‘-’ , ‘_’ 和字母,数字其中之一,最后的{4,16}表示匹配4~16个字符组中的字符。


  • Email:

      /^[a-zA-Z0-9]{1,10}@[a-zA-Z0-9]{1,5}\.[a-zA-Z0-9]{1,5}$/
    

    解释:此正则和用户名正则大同小异,就是在中间加了‘@’与元字符‘.’ 所以我们要在‘.’前进行转义,否则就代表匹配任意单个字符了。


  • 身份证:

      /^\d{17}(\d|x|X)$/
    

    解释:\d表示匹配数字。身份证由17数字,第十八位可能为数字或者X字母。所以我们首先进行17位的数字匹配,再进行最后一位的匹配,\d|x|X就表示匹配数字或者‘x’或者’X’。


  • 密码(最少6位,包括至少一位大写字母,一位小写字母,一个数字,一个特殊字符):

      /(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[$@!%*#?&])[A-Za-z\d$@!%*#?&]{6,}$/
    

    解释:
    这里最先的 (?=.*[A-Z]) 是正则表达式的环视,表示必须满足“在此位置后为 .*[A-Z])”才能匹配成功。意思是,匹配成功的表达式必须满足:存在大写字母。因为 [A-Z] 前为. * 。所以字母前可以存在任何字符。
    (注意:环视不消耗正则的匹配字符。)
    一位小写字母,一个数字,一个特殊字符的匹配也是类似的。
    最后的:[A-Za-z\d$@!%*#?&]{6,}与匹配用户名类似,但这里值得注意的是,因为环视不消耗正则的匹配字符,它就相当于一个判断,所以我们这里字符组中的字符必须包含:字母,数字,特殊字符,且匹配的数量应为6+而不是2+。

猜你喜欢

转载自blog.csdn.net/qq_41942774/article/details/83626715