js切割字符串,长度自定义,英文中文3字符数据都做了考虑

//str : 要切割的字符串
//len:切割的长度
//每个字节都有考虑到字节的字符都做了处理;
function cutString(str, len) {
	//length属性读出来的汉字长度为1
	if(str.length*2 <= len) {
		return str;
	}
	var strlen = 0;
	var s = "";
	for(var i = 0;i < str.length; i++) {
		s = s + str.charAt(i);
		if (str.charCodeAt(i) > 128) {
			strlen = strlen + 2;
			if(strlen >= len){
				return s.substring(0,s.length-1) + "...";
			}
		} else {
			strlen = strlen + 1;
			if('&'== str.charAt(i)){
				if(str.length - 4 >= i ){
					var substr = str.charAt(i) + str.charAt(i+1) + str.charAt(i+2) + str.charAt(i+3);
					if(substr == "&lt;" || substr == "&gt;"){
						strlen = strlen - 3;
					}
				} else if(str.length - 6>= i){
					var substr = str.charAt(i) + str.charAt(i+1) + str.charAt(i+2) + str.charAt(i+3) + str.charAt(i+4)+ str.charAt(i+5);
					if(substr == "&quot;" || substr == "&apos;" || substr == '&nbsp;' ){
						strlen = strlen - 5;
					}
				}else if(str.length - 5>= i){
					var substr = str.charAt(i) + str.charAt(i+1) + str.charAt(i+2) + str.charAt(i+3) + str.charAt(i+4);
					if(substr == "&amp;"  ){
						strlen = strlen - 4;
					}
				}
			}
			if(strlen >= len){
				return s.substring(0,s.length-2) + "...";
			}
		}
	}
	return s;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值