JS 正则表达式 最全面中英文姓名校验 看这篇就够了 附加逐条解析
1.身份证上的真实姓名的校验要求:逐条解析名字校验的正则[\u4e00-\u9fa5]汉字/^ [\u4e00 - \u9fa5] | [a-zA-Z]$/输入汉字、字母/^ (? ![·\-_\s])(?!.* [·\-_\s]$) / 4个特殊符...
·
1.身份证上的真实姓名的校验要求:

逐条解析名字校验的正则
- [\u4e00-\u9fa5] 汉字
- /^ [\u4e00 - \u9fa5] | [a-zA-Z]$/ 输入汉字、字母
- /^ (? ![·\-_\s])(?!.* [·\-_\s]$) / 4个特殊符号“•”或“_” 或“-”或空格 不可以出现在开头和结尾
- /^[·\-\s\w\u4e00-\u9fa5]*$/ 汉字与符号的组合
- !/[0-9]/ 不可以出现数字
- !/[\u4e00-\u9fa5][a-zA-Z]{1}|[a-zA-Z][\u4e00-\u9fa5]{1}/ 汉字和字母不可以组合,即没有汉字与字母的组合
- !/[·_\-\s]{2}/ 符号“•”或“_”或“-”不允许挨着
- !/[\u4e00-\u9fa5]\s[\u4e00-\u9fa5a]/ 汉字之间不允许有空格
- !/[a-z]\s{2,}[a-z]/ 字母之间只允许有1个空格
常用正则特殊字符的含义:
| 字符 | 含义 |
| ^ | 匹配输入字符串开始的位置 |
| $ | 匹配输入字符串结尾的位置 |
| * | 匹配前一个表达式0次或者多次,等价于{0,} |
| {n,} | n是正整数,匹配前一个至少出现了n次 |
| [0-9] | 匹配0-9之间的数字 |
| \d | 匹配一个数字,等价于[0-9] |
|
\D |
匹配一个非数字,等价于[^0-9] |
| [a-zA-Z] | 匹配 a-z 之间的字母 |
| \w | 匹配数字、字母、下划线,等价于[A-Za-z0-9_] |
| \W | 匹配非数字、字母、下划线,等价于[^A-Za-z0-9] |
| \s | 匹配一个空白字符 |
| \b | 匹配一个单词边界,即单词和空格间的位置,例如匹配ing结尾单词 ing\b |
| ? | 匹配前面的子表达式0次或者1次 |
元字符:
| 元字符 | \d |
| \w |
区间:
| 区间 | [0-9] |
| [A-Z] |
限定符:
| 限定符 | * |
| {n,} |
用“元字符+区间+限定符”编写一条正则:
?匹配7位数的QQ邮箱
[0-9]{7}@qq.com
普通字符的转义:
比如 “/” “.” “(” “)” 是正则里的特殊字符,那么在需要匹配的内容是这些正则里的特殊字符时需要用转义符 “\” 进行转义:
?匹配域名https://www.csdn.net
https:\/\/www\.csdn\.net
【tips】
正则中的特殊字符的含义可参考MDN官网:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
推荐一个好用的在线正则工具:https://tool.lu/regex/(可生成各种语言的正则检测)
推荐一个亲测好用的 vscode 正则插件 “any-rule”,使用方法请参考原作者:https://juejin.im/post/5d245d4151882555300feb77
更多推荐



所有评论(0)