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

简介: 1.常见的中文 \u4e00-\u9fbb 和 \u4e00-\u9fa5 (不包含生僻字)2.比较广泛的中文汉字。(包含了咱们需要的生僻字 和 不需要的很多字符 比如 中文句号分号逗号、书名号 等等) \u2E80-\uFE4F3.CJK标点符号

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;
      }
}
相关文章
|
JSON 安全 IDE
基于ESP8266网络天气时钟的OLED显示
【8月更文挑战第25天】基于ESP8266的网络天气时钟通过OLED显示屏提供直观的时间与天气信息。硬件包括ESP8266开发板、OLED显示屏及其他元件。软件实现涉及Wi-Fi连接、天气API数据获取、NTP时间同步及OLED显示控制。显示内容设计包括清晰的时间格式与详细的天气描述,支持图标展示。项目支持自动更新机制、低功耗模式,并可扩展闹钟等功能。开发者需根据具体环境调整优化,确保系统稳定可靠。
797 0
|
前端开发 网络协议 Dubbo
超详细Netty入门,看这篇就够了!
本文主要讲述Netty框架的一些特性以及重要组件,希望看完之后能对Netty框架有一个比较直观的感受,希望能帮助读者快速入门Netty,减少一些弯路。
95189 33
超详细Netty入门,看这篇就够了!
正则验证姓名否中文(包含生僻字)
正则验证姓名否中文(包含生僻字)
1018 0
|
缓存 监控 安全
阿里云CDN设置阀值的指南
阿里云CDN设置阀值的指南
|
监控 Dubbo Java
超详细的Sentinel入门
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
超详细的Sentinel入门
pip换源
pip换源
573 0
|
关系型数据库 数据库 数据安全/隐私保护
Docker部署安装禅道
Docker部署安装禅道
926 0
|
存储 缓存 小程序
微信小程序-缓存
微信小程序-缓存
623 0
|
Java 容器
SpringBoot下资源国际化应用实践
SpringBoot下资源国际化应用实践
323 0
|
SQL Java 数据库连接
Mybatis传入数组参数
Mybatis传入数组参数
512 0

热门文章

最新文章