(function(){
var ISCHINESE = /[\u4e00-\u9fa5]/;
var getData = function( value , maxLenth , isStrick ){
value = value + '';
var total = 0 , legelIndex = value.length;
if( !isStrick ){
return {
total : legelIndex ,
index : legelIndex
};
}
for( var i = 0 , len = value.length ;i < len ; i ++ ){
var key = value.charAt( i );
total += ISCHINESE.test(key) ? 2 : 1;
maxLenth && total <= maxLenth &&( legelIndex = i+1 );
}
return {
total : total ,
index : legelIndex
};
}
var stringUtil = {
/**
* 根据要求的最大值,返回合法
* @param {[type]} value 需要检查的字符串
* @param {[type]} maxLength 校验字符串的最大长度
* @param {Boolean} isStrick 是否要求中文算两个字符
* @return {[type]} 返回字符串的长度
*/
getLegalLengthValue : function( maxLenth , isStrick ){
var value = this;
var data = getData( value , maxLenth , isStrick );
return value.substring( 0 , data.index );
},
getLength : function( isStrick ){
var value = this;
var data = getData( value , false , isStrick );
return data.total;
}
};
for( var i in stringUtil ){String.prototype[i] = stringUtil[i] }
})()