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

通过正则表达式匹配 用户名/密码/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+。

你可能感兴趣的:(正则表达式 匹配 用户名/密码/Email/身份证)