在日常开发过程中,我们常常要在前端js中处理字符串的问题,其中要计算输入字符串长度的功能用的比较多,特别是含有中文汉字的字符串计算稍微有区别,以下是常见的几种计算方法:
方法一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function GetLength(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> 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; } |
执行代码:
alert(GetLength(‘测试测试ceshiceshi));
方法二:
1 2 3 4 5 6 7 8 |
var l = str.length; var blen = 0; for(i=0; i<l; i++) { if ((str.charCodeAt(i) & 0xff00) != 0) { blen ++; } blen ++; } |
方法三:
1 2 3 4 5 |
function GetLength(str) { //先把中文替换成两个字节的英文,在计算长度 return str.replace(/[\u0391-\uFFE5]/g,"aa").length; } alert(GetLength('测试测试ceshiceshi')); |