<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script>
function f_StrCN(str, len, hasDot) {
// 1: str - 源字符串
// 2: len - 要截取的长度。
// 3: hasDot - 是否显示…,0不显示 1显示 。
// f_StrCN("中国人123",7,1) 显示 中国人1
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;
}
alert(f_StrCN("中国人123",7,1));
alert(f_StrCN("中国人123",7,0));
alert(f_StrCN("中国人123",1,1));
alert(f_StrCN("中国人123",2,1));
</script>
运行结果:
中国人1...
中国人1
...
中...