zoukankan      html  css  js  c++  java
  • (转)js正则表达式之中文验证

    今天做表单提交的输入框条件验证,验证是否包含中文;网上搜了一圈基于js正则表达式的验证基本不好用,而且大多都是出自一两篇原文的转帖!到底什么才是拿来主义呢。根据搜索结果,本文取精华,告诉大家一个好用的中文验证方法。

     
      
     
    使用js正则表达式匹配中文,需要了解中文字符在unicode编码中所处的区间。这样才能够了解表达式的匹配原理。
     
      
     
      
     
        首先在正则表达式中使用 Unicode,必须使用u开头,接着是字符编码的四位16进制表现形式
    简单匹配中文方法: /[^u0000-u00FF]/ (匹配非单字节字符 )
    另错误方法:/[^u00-uFF]/ (匹配 非单字节字符、还包括一些全半角符号如,.(){}'"!等、还有vwxyz字符)
    说明: //u0000-u00ff.包含unicode单字节编码( 0-255编码)包含基本控制字符和拉丁文字母。 采用该否定表达式,粗略判断是否含有中文。
      
    具体的匹配中文及字符方法:/[u4E00-u9FA5uF900-uFA2D]/
    说明: u4e00-u9fbf :  unicode CJK(中日韩)统一表意字符。u9fa5后至u9fbf为空
    uF900-uFAFF :  为unicode  CJK 兼容象形文字  。uFA2D后至uFAFF为空
    具体可参考unicode编码表:http://www.nengcha.com/code/unicode/class/
     
      
     
      
    //是否含有中文(也包含日文和韩文)
    function isChineseChar(str){   
       var reg = /[u4E00-u9FA5uF900-uFA2D]/;
       return reg.test(str);
    }
    //同理,是否含有全角符号的函数
    function isFullwidthChar(str){
       var reg = /[uFF00-uFFEF]/;
       return reg.test(str);
  • 相关阅读:
    Libevent库学习笔记
    最大的k个数问题
    MongoDB之整库备份还原单表collection备份还原
    精通MATLAB混合编程
    AutoCAD 2016中文版从入门到精通(第2版)
    MATLAB科学计算范例实战速查宝典
    Android系统应用开发实战详解
    AutoCAD快捷命令速查大全
    TCP IP入门经典(第5版)
    STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用
  • 原文地址:https://www.cnblogs.com/wanshutao/p/4130499.html
Copyright © 2011-2022 走看看