废话不多说,直接上代码。
export {StringUtil};
class StringUtil{
/**
* 限制字符串长度
* @param nickname
* @param len 英文字符长度
*/
public static subNameString(nickname:string,len:number = 10){
// if(!nickname || typeof nickname != "string"){
// console.error(" 参数错误!!! ");
// return;
//}
if(nickname == ""){
return nickname;
}
let localStr = StringUtil.getStringObjectByBytes(nickname,len);
return localStr;
}
/**
* 获取指定字节数大小的字符串长度
* @param nickname
* @param len 英文字符长度
*/
public static getStringObjectByBytes(nickname:string,len:number){
var localStr = "";
var localLength = 0;
for (let i = 0; i < nickname.length; i++) {
if(nickname.charCodeAt(i) < 128){//不是汉字
localLength +=1;
}else{
localLength +=2;
}
if(localLength <= len){
localStr += nickname.slice(i,i + 1);
}else{
localStr += "...";
break;
}
}
return localStr;
}
/**
* 统计字符串字节数(英文字符字节)
* @param nickname
*/
public static countStringByte(nickname:string){
let localLength = 0;
if(nickname && typeof nickname == "string"){
for (let i = 0; i < nickname.length; i++) {
if(nickname.charCodeAt(i) < 128){
localLength +=1;
}else{
localLength +=2;
}
}
}
return localLength;
}
}