JS 正则表达式 最全面中英文姓名校验 看这篇就够了 附加逐条解析

1.身份证上的真实姓名的校验要求:

JS 正则表达式 最全面中英文姓名校验 看这篇就够了 附加逐条解析_第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

你可能感兴趣的:(Vue,微信小程序,前端)