//charnum占位长度,
//str 字符串内容
//返回charnum占位长度 下的字符串长度;
function getcharlength(charnum,str){
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len++;
} else {
len += 2;
}
//需要占位长度大于或等于字符串长度,返回字符串长度
if(i==str.length-1&&len<charnum){
return str.length;
}
//返回占位符下的字符串长度
if(len>=charnum){
return i;
}
}
}
var str = '中国人民解放军kangkai激昂的CHANG着国歌,"@#$%%%"';
//截取前20位占位符下字符串内容。
var subs = str.substr(0,getcharlength(20,str));

该文章介绍了一个JavaScript函数`getcharlength`,它用于计算字符串在特定占位长度下的实际长度。函数考虑了中文字符和特殊字符,适用于处理包含多字节字符的字符串。示例中展示了如何使用该函数截取指定占位符长度的字符串。
7093

被折叠的 条评论
为什么被折叠?



