jsは長さを超える文字の切り取り指定長さを実現します.(中国語の文字は2文字と計算します.)

2683 ワード

 //             ,     ...  
        function subString(str, len) {
            var newLength = 0;
            var newStr = "";
            var chineseRegex = /[^\x00-\xff]/g;
            var singleChar = "";
            var strLength = str.replace(chineseRegex, "**").length;
            if (strLength > len) {
                for (var i = 0; i < strLength; i++) {
                    singleChar = str.charAt(i).toString();
                    if (singleChar.match(chineseRegex) != null) {
                        newLength += 2;
                    }
                    else {
                        newLength++;
                    }
                    if (newLength > len) {
                        break;
                    }
                    newStr += singleChar;
                }

                if (strLength > len) {
                    newStr += "...";
                }
            } else {
                newStr = str;
            }
            return newStr;
        }