Js 验证文本框只能输入中文的表达式

今天做表单提交的输入框条件验证,验证是否包含中文;网上搜了一圈基于js正则表达式的验证基本不好用,一据搜索结果,本文取精华,告诉大家一个好用的中文验证方法。

网上好多要不无效,从正则表达式生成器 生成出来的中文验证竟然只能输入数字 也是奇葩了;

<input type="text" class="familyAddPersonSonInput" ms-duplex="el.emp.Bankname1"  οnkeyup="this.value=this.value.replace(/[\u4E00-\u9FA5\uF900-\uFA2D]/,'')" οninput="if(value.length>30)value=value.slice(0,30)" />

目前下面一个可以 该贴也是百度搜索出来的

  

 

使用js正则表达式匹配中文,需要了解中文字符在unicode编码中所处的区间。这样才能够了解表达式的匹配原理。

    首先在正则表达式中使用 Unicode,必须使用\u开头,接着是字符编码的四位16进制表现形式

简单匹配中文方法: /[^\u0000-\u00FF]/ (匹配非单字节字符 )

另错误方法:/[^\u00-\uFF]/ (匹配 非单字节字符、还包括一些全半角符号如,.(){}'"!等、还有vwxyz字符)

说明: //u0000-u00ff.包含unicode单字节编码( 0-255编码)包含基本控制字符和拉丁文字母。 采用该否定表达式,粗略判断是否含有中文。

  

具体的匹配中文及字符方法:/[\u4E00-\u9FA5\uF900-\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-\u9FA5\uF900-\uFA2D]/;

   return reg.test(str);

}

//同理,是否含有全角符号的函数

function isFullwidthChar(str){

   var reg = /[\uFF00-\uFFEF]/;

   return reg.test(str);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值