您的位置:首页 > Web前端 > JavaScript

Javascript 中英文字符串截取

2015-09-17 12:10 781 查看
/**
* 中英文字符串截取
* @param str  要截取的字符串
* @param len  要截取的长度
* @param hasDot 是否在字符串末尾增加'...'
* @returns {string}
*
*/

function mySubString (str, len, hasDot){
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex,"**").length;
for(var i = 0;i < strLength;i++)     {
singleChar = str.charAt(i).toString();
if(singleChar.match(chineseRegex) != null) {
newLength += 2;
}else {
newLength++;
}
if(newLength > len) {
break;
}
newStr += singleChar;
}
if(hasDot && strLength > len) {
newStr += "...";
}
return newStr;
}


举个例子,假如需要最多保留24个字符(中文算两个,英文算一个)

$('#inupt').on('keyup',function(){
var newValue = $(this).val();
var textLength = 0;
var subStr;

for (var i = 0; i < newValue.length; i++) {
if (newValue.charAt(i).match(/[\u0391-\uFFE5]/)) {
textLength += 2;
} else {
textLength++;
}
};

subStr = mySubString(newValue,24);
$(this).val(subStr);
$('#strLengh').text(textLength);

})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: