你早晚会用到的,用CSS来控制文字长度毕竟不是什么需求都能满足,现在后台也不管字符长度截取了,只能用JS来截取字符串了。

[js]/**
* 返回字符的字节长度(汉字算2个字节)
* @param {string}
* @returns {number}
*/

var getByteLen = function (val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null) //全角
len += 2;
else
len += 1;
};
return len;
}
var sAbc = ‘1a啊啊22飞3地方a’;
var ol = getByteLen(sAbc);
alert(‘直接用length取得的字节长度:’ + sAbc.length);
alert(‘通过getByteLen()方法取得的字节长度:’ + ol);
[/js]

通过上面的方法就可以继续写一个截取指定长度的新字符串了,截取掉的部分用…补全:

[js]/**
* 返回字符的字节长度(汉字算2个字节)
* @param {string}{number}
* @returns {string} +’…’
*/

var cutStrForNum = function (str, num) {
var len = 0;
for (var i = 0; i < str.length; i++) {
if (str[i].match(/[^\x00-\xff]/ig) != null) //全角
len += 2;
else
len += 1;
}
if (len >= num) {
newStr = str.substring(0, num) + "…";
}
return newStr;
}
var sAbc = ‘1a啊啊22飞3地方a’;
alert(cutStrForNum(sAbc, 3));[/js]

转载请注明来自:爱前端

发表评论

电子邮件地址不会被公开。 必填项已用*标注