// 获取字符串的字节长度
function getStrLength(str) {
if(!str){
return 0;
}
var cArr = str.match(/[^\x00-\xff]/ig);
return str.length + (cArr == null ? 0 : cArr.length);
}
// 检查是否含有中文
function isChinese(str) {
if(!str){
return false;
}
var cArr = str.match(/[^\x00-\xff]/ig);
if(!cArr || cArr.length <= 0){
return false;
}
return true;
}
// 最多获取maxByte个字节(如果最后一个中文跨度,则获取maxByte+1个字节)的字符串内容
function getStrByMaxByte(str,maxByte) {
if(!str || str.length == 0 || isNaN(parseInt(maxByte))){
return str;
}
var cArr = str.match(/[^\x00-\xff]/ig);
if(!cArr || cArr.length <= 0){//没有中文
return str.slice(0,maxByte);
}
var totalLength = str.length + cArr.length;
if(totalLength <= maxByte){//总字节数小于要求的最大限制
return str;
}
var lengthTemp = 1;
var maxByteTemp = 0;
var strTemp = "";
var cArr = null;
if((maxByte % 2) == 0){
lengthTemp = maxByte/2;
}else{
lengthTemp = (maxByte+1)/2;
}
while(maxByteTemp < maxByte){
strTemp = str.slice(0,lengthTemp);
cArr = strTemp.match(/[^\x00-\xff]/ig);
maxByteTemp = strTemp.length + (cArr == null ? 0 : cArr.length);
lengthTemp ++;
}
return strTemp;
}