正则验证姓名否中文(包含生僻字)

简介: 正则验证姓名否中文(包含生僻字)

1.常见的中文 \u4e00-\u9fbb 和 \u4e00-\u9fa5 (不包含生僻字)


2.比较广泛的中文汉字。(包含了咱们需要的生僻字 和 不需要的很多字符 比如 中文句号分号逗号、书名号 等等) \u2E80-\uFE4F


3.CJK标点符号
范围:\u3000-\u303F
参考地址:http://www.unicode.org/charts/PDF/U3000.pdf


根据以上三点,我们要用第二个再排除第三个,所以判断是否包含生僻字的中文姓名的正则表达式如下所示:


/^((?![\u3000-\u303F])[\u2E80-\uFE4F]|\·)(?![\u3000-\u303F])\u2E80-\uFE4F$/.test(name)

/^([\u2E80-\uFE4F]{2,6})$/gi.test('䶮一亿')

校验姓名


// 将传入的姓名中空格和全角空格都去掉,乱七八糟的·都换成半角的·
export const checkChineseName = function(name) {
      let reg = /^[\u4e00-\u9fa5]{2,15}$/;
      // 保留点后,用来校验的姓名,也是最终校验通过后返回的姓名
      let payerName = name.replaceAll(" ", "")
                        .replaceAll(" ", "")
                        .replaceAll("•", "·")
                        .replaceAll(".", "·");
      // 去除所有点后,用来校验的姓名
      let checkName = name.replaceAll(" ", "")
                        .replaceAll(" ", "")
                        .replaceAll("•", "")
                        .replaceAll(".", "")
                        .replaceAll("·", "");
      if(checkName.length === 1){
        message.error("姓名至少包含两位汉字,请修正");
        return false;
      }
      if (reg.test(checkName)) {
        if(payerName.substring(0,1) === '·'){
            message.error("姓名第一位不能为【·】,请修正");
            return false;
        }
        if(payerName.substring(payerName.length - 1) === '·'){
            message.error("姓名最后不能为【·】,请修正");
            return false;
        }
        if(payerName.indexOf("··") !== -1){
            message.error("姓名不能有连续的【·】,请修正");
            return false;
        }
        return payerName;
      } else {
        message.error("姓名中只能包含【汉字】和【·】,请修正");
        return false;
      }
}
相关文章
正则表达式 - 中文、英文姓名匹配
正则表达式 - 中文、英文姓名匹配
3400 0
|
5月前
|
JavaScript
js 判断字符串是否包含中文,判断字符串是否全是中文,判断字符是否为中文
js 判断字符串是否包含中文,判断字符串是否全是中文,判断字符是否为中文
262 0
正则验证姓名否中文(包含生僻字)
1.常见的中文 \u4e00-\u9fbb 和 \u4e00-\u9fa5 (不包含生僻字) 2.比较广泛的中文汉字。(包含了咱们需要的生僻字 和 不需要的很多字符 比如 中文句号分号逗号、书名号 等等) \u2E80-\uFE4F 3.CJK标点符号
2207 0
如何用正则表达式判断手机号格式正不正确
如何用正则表达式判断手机号格式正不正确
146 0
|
SQL 前端开发 Java
【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
如何将分隔数据转换为多值IN列表、如何按字母顺序排列字符串、如何对字符串字母去重后按字母顺序排列字符串、如何删除字符串中的字符保留数字。【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。这篇文章还是介绍的字符串处理案例,还是那句话,这些操作太太太常见了。后面还会写,而且是更麻烦更难的需求。
【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
|
数据安全/隐私保护
正则校验密码包含字母数字符号
正则校验密码包含字母数字符号
248 1
|
编译器 C语言
特殊符号的补充理解
正片开始👀 因为之前就写过关键字和操作符专题了,可能各位已经烂熟于心了,但某些细节方面我还是想拿出来讲一下,我们比较陌生的概念等等。
特殊符号的补充理解
|
PHP
PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
153 0

热门文章

最新文章