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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容