最近在为项目写登录注册系列页面, 表单验证无疑是不可缺少的部分, 在这个jQ插件满天飞的web年代, 表单验证倒也不是难事. 但再好的插件, 也并不能做到十全十美, 比如这次用到的我先前介绍过的Vanadium表单验证插件, 因为是E文中不存在占2个字符的字, 所以, 区分中英文字符就得自己扩展. 本文就将介绍两种区分中英文字符的方法: 利用正则和charCodeAt方法区分中英文字符。
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, Mr.Think也是非常推荐用这种方法的, 简单且执行效率高.
核心代码如下:
1 | regExpForm.onblur= function (){ |
3 | entryLen=entryVal.length; |
4 | cnChar=entryVal.match(/[^\x00-\x80]/g); |
6 | entryLen+=cnChar.length; |
第二种方法是通过charCodeAt()方法判断Unicode码值, 若大于255即为中文字符(为什么? 请Google). Mr.Think并不建议用这种方法的, 它的执行效率没有正则高, 也没有正则简单.
核心代码如下:
2 | entryLen=entryVal.length; |
3 | for ( var i=0;i<entryVal.length;i++){ |
4 | if (entryVal.charCodeAt(i)>255){ |
5 | cnArr.push(entryVal[i]); |
9 | entryLen+=cnArr.length; |