日期:2014-05-16  浏览次数:20315 次

javascript 以中文为基础截取字符串
/**
 * 控制文章的显示,以中文为基础
 * s 待处理的字符串
 * l 截取的长度
 * d 是否出现“...”,默认出现
 */
function subStr(s,l,d){
	if(s == undefined){
		return "";
	}
	l=l*2;
	var r = /[^\x00-\xff]/g;
	if(s.replace(r, "zz").length <= l){
		return s;    	
	} 
	var m = Math.floor(l/2);
	for(var i=m; i<s.length; i++){
		if(s.substring(0, i).replace(r, "zz").length>=l) {
			if(d==undefined){
				return s.substring(0, i) +"...";
			}else{
				return s.substring(0, i);
			}
		} 
	}
	return s;
}

测试如下:
document.write(subStr("我的未来不是梦!!!!",5));
document.write("<br/>");
document.write(subStr("wo de wei lai bu 是梦!!!!",5));
document.write("<br/>");
document.write(subStr("abcdefguiouiosanxzm,hjkad;askl;dsaj",5));

结果如下:
我的未来不...
wo de wei ...
abcdefguio...