比如这次用到的我先前介绍过的Vanadium表单验证插件, 因为是E文中不存在占2个字符的字, 所以, 区分中英文字符就得自己扩展. 本文就将介绍两种区分中英文字符的方法: 利用正则和charCodeAt方法区分中英文字符.
区分中英文字符的两种方法: 正则和charCodeAt()方法@Mr.Think
/*reset css*/
body{font-size:0.8em;letter-spacing:1px;font-family:5fae8f6f96c59ed1;line-height:1.8em}
div,h2,p,fieldset,legend,form,textarea,span,em,sub{margin:0;padding:0}
input{font:12px/1.5 tahoma,arial,sans-serif;vertical-align:middle}
h1{font-size:1em;font-weight:normal}
h1 a{background:#047;padding:2px 3px;color:#fff;text-decoration:none}
h1 a:hover{background:#a40000;color:#fff;text-decoration:underline}
h3{color:#888;font-weight:bold;font-size:1em;margin:1em auto;position:relative}
/*demo css*/
fieldset{padding:20px;border:1px solid #ccc;width:720px}
fieldset legend{background:#a40000;color:#fff;text-align:center;padding:0 8px;margin-left:25px}
fieldset label{display:block;padding-left:25px;line-height:40px}
fieldset label input{padding:2px 3px;border:1px solid #888;width:200px;height:16px}
fieldset label input:focus{border:1px solid blue}
Mr.Think的个人博客
@专注前端技术,热爱PHP,崇尚简单生活.
返回文章页:区分中英文字符的两种方法: 正则和charCodeAt()方法@Mr.Think
请在如下表单中输入字符后点击表单外区域
通过正则表达式判断:
通过charCodeAt()方法判断:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, 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;
推荐阅读
深入理解JavaScript定时机制
例如 复制代码 代码如下: setTimeout(function() { alert('你好!'); }, 0); setInterval(callbackFunction, 100); 认为setTimeout中的问候方法会立即被执行,因为这并不是凭空而说,而是JavaScript API文档明确定义>>>详细阅读
本文标题:区分中英文字符的两种方法(正则和charCodeAt())
地址:http://www.17bianji.com/kaifa2/JS/25497.html
1/2 1