javascript判断中文的正则表达式

JS判断中文的正则表达式,判断这类型的场景,

基本都是通过国际编码值(Unicode)的范围来实现的;

比如汉字中文的编码值是:\u4e00-\u9fa5

那就是判断当前的字符是否属于这个范围;如果输入就是中文;

如果不输入就不是中文了;

  • 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
  • 匹配双字节字符(包括汉字在内):[^\x00-\xff]
function isChinese(temp) {
var re = /[^\u4e00-\u9fa5]/;
if(re.test(temp)){
return false;
}
return true;
}
console.log(isChinese("中文"));//true
console.log(isChinese("文"));//true
console.log(isChinese("中2"));//false
console.log(isChinese("中c"));//false
console.log(isChinese("hello"));//false

校验字符串是否为中文;

这类正则,如果匹配有问题,当逻辑没有问题的时候,肯定是就是编码值的范围弄错了;

另一篇正则的相关参考:

http://www.jsdaxue.com/archives/203.html

关于Unicode的说明:

unicode编码可兼容所有语言的操作系统。
在计算机科学领域中,Unicode(统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以呈现世界上数十种文字的系统。Unicode是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)对外发表。Unicode包含了超过十万个字符(在2005年,Unicode的第十万个字符被采纳且认可成为标准之一)、一组可用以作为视觉参考的代码图表、一套编码方法与一组标准字符编码、一套包含了上标字、下标字等字符特性的列举等。
Unicode组织(The Unicode Consortium)是由一个非营利性的机构所运作,并主导Unicode的后续发展,其目标在于:将既有的字符编码方案,以Unicode编码方案来加以取代,特别是既有的方案在多语环境下,皆仅有有限的空间以及不相容的问题。
Unicode在字符集认可的成功,使其得以在电脑软件的国际化与本地化领域中,广泛且具优势的被采用。这标准已在近年来的多种新科技当中被加以采用,包含了可扩展置标语言(XML)、Java编程语言、以及最新的操作系统中。
unicode编码的编码规则

比如要把“杨”编码,我们可以新建一个记事本,输入“杨”保存时选择存为unicode编码,然后查看文件二进制内容,前面的FF FE两个字节是unicode编码文件头标志,接着的68 67两个字节就是“杨”的unicode编码,用计算器换算为十进制就是26472,现在可以在一个html文件里面写入“杨”,IE打开就显示一个“杨”字。

当然,对于一般ASCII码,unicode编码与ASCII编码一致,所以A可以显示一个大写字母“A”.

~~

未经允许不得转载:WEB前端开发 » javascript判断中文的正则表达式

赞 (0)