function countCharacters(str, num) { var str = '' + str || '', num = +num || 0, res = '', length = 0; if (!str || !num) { return str; } // 循环字符串,判断长度 最少也会返回一个字 for (var i in str) { res += str[i]; // 测试长度 length += /[u4e00-u9fa5]/.test(str[i]) ? 2 : 1; // 如果长度大于设置长度 或者 循环到最后则终止循环 if (length >= num || +i == str.length - 1) { break; } } return res; }