文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>区分中英文字符的两种方法: 正则和charCodeAt()方法

区分中英文字符的两种方法: 正则和charCodeAt()方法

时间:2010-10-26  来源:Mr.Think

regExpForm.onblur=function(){
        entryVal=this.value;
        entryLen=entryVal.length;
        cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组
        entryLen+=cnChar.length;//算出实际的字符长度
    }

第二种方法是通过charCodeAt()方法判断Unicode码值, 若大于255即为中文字符(为什么? 请Google ). Mr.Think并不建议用这种方法的, 它的执行效率没有正则高, 也没有正则简单.
核心代码如下:

entryVal=this.value;
        entryLen=entryVal.length;
        for(var i=0;i<entryVal.length;i++){
            if(entryVal.charCodeAt(i)>255){//遍历判断字符串中每个字符的Unicode码,大于255则为中文
                cnArr.push(entryVal[i]);//讲符合条件的值插入到中文字符数组中
                //注意一个小bug,push是向数组的末尾添加一个或多个元素并返回新的长度,所以未刷新的情况下反复blur会累加字符值
            }
        }
        entryLen+=cnArr.length;

原文发布于Mr.Think的博客: http://mrthink.net/js-cn-en-character/ ,转载请注明出处.
相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载