length取字符串长度
代码如下 | 复制代码 |
<script type="text/javascript"> var str="字符串字节长度为" ; alert(str.length); </script> |
中英文,一个汉字相当于2个字符
例1
代码如下 | 复制代码 |
<script type="text/javascript"> //一个汉字相当于2个字符 function get_length(s){ var char_length = 0; for (var i = 0; i < s.length; i++){ var son_char = s.charAt(i); encodeURI(son_char).length > 2 ? char_length += 1 : char_length += 0.5; } return char_length; } function cut_str(stbr, len){ var char_length = 0; for (var i = 0; i < str.length; i++){ var son_str = str.charAt(i); encodeURI(son_str).length > 2 ? char_length += 1 : char_length += 0.5; if (char_length >= len){ var sub_len = char_length == len ? i+1 : i; return str.substr(0, sub_len); break; } } } // 截取15个字(30个字符) // cut_str('aa啊啊啊啊啊啊啊啊啊啊啊啊啊k的啊是', 15); </script> |
例2
代码如下 | 复制代码 |
var jmz = {}; jmz.GetLength = function(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(jmz.GetLength('测试测试ceshiceshi)); |
例3
自动将双字节字符长度计算为2,取字符时也按照单字节的长度取,如2即取1个汉字或两个字母,1取一个汉字或字母。
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <body> // 截取固定长度子字符串 sSource为字符串iLen为长度 var str = ""; return str; |