页面中汉字,数字,字符的长度

来源:互联网 发布:淘宝助理 未知错误 1 编辑:程序博客网 时间:2024/04/30 04:28

在页面控件中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;         }