赞
踩
在页面控件中MaxLength控制的是字符数量,所以在页面中得到的汉字,数字,字母的Length都是1,但是在数据库中汉字是2。
当要在页面做限制是,原理:
该字符在Unicode字符集中的编码值来进行比较。例如,字符A的编码是65,字符B的编码是66,依此类推。小写字母从97开始编码,即字母a的编码是97,字母b的编码是98,依此类推。数字字符则是从48开始编码,字符0的编码是48,而字符9的编码是57。还有一些特殊符号如+、-等,在此就不举例了。
我们使用charCodeAt(char)来得到变量char所对应的Unicode编码,根据上面所描述的,英文、数字及一些特殊符号的Unicode编码是已知的,而且有一个范围,因此可以认为,不在此范围之内的字符,都可认为它是汉字,按长度为2来计算。
处理方式:
function a() { var b="厂12'\"sdA1厂12'\"sdA1厂12'\"sdA1厂12'\"sdA1厂12'\"sdA1"; alert("长度" + getLength(b)); } function getLength(str) { var len = str.length; var reLen = 0; for (var i = 0; i < len; i++) { if (str.charCodeAt(i) < 27 || str.charCodeAt(i) > 126) { // 全角 reLen += 2; } else { reLen++; } } return reLen; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。