1. 程式人生 > >js--小demo--字串長度判斷,超出進行自動擷取(支援中文)

js--小demo--字串長度判斷,超出進行自動擷取(支援中文)

// 若真是長度大於10,也就是中文5個
if (GetLength(c.label) > 10) { 

    var label = cutstr(c.label, 10);   
    $item.find('.text').text(label);

}else {
    $item.find('.text').text(c.label);
}

var 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; }; /** * js擷取字串,中英文都能用 * @param
str:需要擷取的字串 * @param len: 需要擷取的長度 */
function cutstr(str, len) { var str_length = 0; var str_len = 0; str_cut = new String(); str_len = str.length; for (var i = 0; i < str_len; i++) { a = str.charAt(i); str_length++; if (escape(a).length > 4) { //中文字元的長度經編碼之後大於4
str_length++; } str_cut = str_cut.concat(a); if (str_length >= len) { str_cut = str_cut.concat("..."); return str_cut; } } //如果給定字串小於指定長度,則返回源字串; if (str_length < len) { return str; } }