精美而实用的网站,关注web编程技术、网站运营、SEO推广,让您轻松愉快的学习

今天在做网址外链提交的时候,为了避免一些垃圾自动程序提交数据,我们需要检测字符串是否包含汉字,如包含汉字就不能提交表单。下面青岛星网跟大家分享下处理函数。

使用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为空

js正则判断字符串是否包含中文汉字的函数

//是否含有中文(也包含日文和韩文)
function isChineseChar(str){   
   var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
   return reg.test(str);
}
//同理,是否含有全角符号的函数
function isFullwidthChar(str){
   var reg = /[\uFF00-\uFFEF]/;
   return reg.test(str);
}  
//青岛星网最终使用的判断是否含有中文的函数
function funcChina(){
var obj = document.form1.txtName.value;
if(/.*[\u4e00-\u9fa5]+.*$/.test(obj))
{
alert("不能含有汉字!");
return false;
}
return true;
}

青岛星网温馨提醒:这只是JS客户端的检测机制,有些违法程序可以绕开客户端检测,为了一些垃圾信息不能提交数据库,建议大家在服务器端再加以验证判断,才可以彻底避免垃圾数据的产生。

Tags:js 正则 中文 汉字