JS区分中英文字符的两种方法
2015-10-09 16:40
881 查看
JS区分中英文字符的两种方法: 正则和charCodeAt()方法。
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, 简单且执行效率高.
[javascript] view
plaincopy
regExpForm.onblur=function(){
entryVal=this.value;
entryLen=entryVal.length;
cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组
entryLen =cnChar.length;//算出实际的字符长度
}
第二种方法是通过charCodeAt()方法判断Unicode码值, 若大于255即为中文字符, 它的执行效率没有正则高, 也没有正则简单.
[javascript] view
plaincopy
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;
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, 简单且执行效率高.
[javascript] view
plaincopy
regExpForm.onblur=function(){
entryVal=this.value;
entryLen=entryVal.length;
cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组
entryLen =cnChar.length;//算出实际的字符长度
}
第二种方法是通过charCodeAt()方法判断Unicode码值, 若大于255即为中文字符, 它的执行效率没有正则高, 也没有正则简单.
[javascript] view
plaincopy
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;
相关文章推荐
- JS中的事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE
- Js判断键盘按键
- fast-json的简单实用笔记
- json返回的日期通常都是/Date(1354648740000)/这样的格式,下面的函数可以转换成常用的格式 如:2012-12-05
- js如何打印对象
- JSP之Cookie对象使用
- seajs1.3.0源码解析之module依赖有序加载
- javascript
- JSON.stringify 语法实例讲解
- backbone.js选型使用分析
- Javascript跨域和Ajax跨域解决方案
- phantomjs 的安装和使用
- JSON.parse()和eval()区别
- 点击表格,高亮,JS代码
- Meter 上传文件前,js计算文件的md5值
- JSON.parse()和JSON.stringify()
- JS TAB面板延时机制
- javascript常用对象
- LeetCode——Word Pattern的JavaScript的实现
- javascript的闭包和变量