// 獲取字符串的字節長度
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;
}