js校验中判断输入长度功能是不可缺少的,但是在实际的判断中我们需要动态对于英文字符和中文字符进行单独判断(数字占一个字节,英文占一个字节,标点占一个字节,一个汉字占两个字节)。
1.英文的asc码在[0,128]之间
function(str) { var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) realLength += 1; else realLength += 2; } return realLength;};2.按位与运算
var l = str.length;var blen = 0;for(i=0; i<l; i++) {if ((str.charCodeAt(i) & 0xff00) != 0) {blen ++;}blen ++;}3.等值替换法
function(str) { return str.replace(/[/u0391-/uFFE5]/g,"aa").length; };
新闻热点
疑难解答