码迷,mamicode.com
首页 > Web开发 > 详细

js 识别汉字和全角字符

时间:2017-11-10 21:38:46      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:识别   就是   16进制   set   转发   gen   疑惑   ace   计算   

遇到个问题,需要检测输入框中的字符长度,如果是汉字,算作2个字节???

然后我就在想,我怎么去识别他是不是汉字呢???首先想到的可能就是 js 的 charCodeAt 方法, ASCII 码,然后就疑惑,那么怎么把汉字和 ASCII 码对应起来呢,想不通,遂百度,发现转发方法的人挺多,但都不说原理,难道都明白???原理还是我来说吧

比较通用的方法都是这样子:

代码
        var a="好";
    	isChinese=!!a.match(/[^\x00-\xff]/ig);
    	//或者
    	isChinese=!(a.charCodeAt()>=0&&a.charCodeAt()<=128);
    	//或者直接求长度
    	var length=a.replace(/[^\x00-\xff]/g,"**").length;
			

你会发现三种方法里有两种都提到了 \x00-\xff ,好好看看就是\转译符,加上16进制数字,转成10进制就是,0-255,那么这里意思就很明显了,就是找出 ASCII 码超出 0-255 的字符,如果有,就认为是汉字或全角字符,算作两个字节,明白了?

ASCII 码我倒是去看了下,0-127是统一的,128-255 的好像规则不统一,不过好像也没有汉字和全角字符,但是这样用精不精确,不大明白,有空再去补补计算机基础,,,

js 识别汉字和全角字符

标签:识别   就是   16进制   set   转发   gen   疑惑   ace   计算   

原文地址:http://www.cnblogs.com/jimmy-smith/p/7816098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!