`
lokepaqi
  • 浏览: 44789 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

js按宽度截取字符串。

阅读更多
String.prototype.getBytes = function() {   
    var totalLen = 0;     
    var charCode;  
    for (var i = 0; i < this.length; i++) {  
        charCode = this.charCodeAt(i);  
        if (charCode < 0x007f)  {     
            totalLen++;     
        } else if ((0x0080 <= charCode) && (charCode <= 0x07ff))  {     
            totalLen += 2;     
        } else if ((0x0800 <= charCode) && (charCode <= 0xffff))  {     
            totalLen += 3;   
        } else{  
            totalLen += 4;   
        }          
    }  
    return totalLen;   
};

String.prototype.subStringBytes = function(len) {
    var i = 0;
    var readBytes = 0;
    var charCode;  
    for (i = 0; i < this.length && readBytes <= len ; i++) {  
        charCode = this.charCodeAt(i);  
        if (charCode < 0x007f)  {     
        	readBytes++;     
        } else{
        	readBytes += 2;   
        }
    }
    if(i==this.length){
    	return this.substring(0, i);
    }
    return this.substring(0, i)+"...";   
};

$(function(){
	$("a.subStringBytes").each(function(){
		var len = $(this).parent().attr("offsetWidth");
		var html = $.trim($(this).text());
		var newHtml = '';
		var suffix = false;
		for(var j=0;j<html.length;j++){  
			newHtml += html.charAt(j);
		    $(this).text(newHtml);  
		    if($(this).attr("offsetWidth")>(len-70)){ 
		    	suffix = true;
		        break;  
		    }  
		} 
		if(suffix){
			newHtml += '...';
		}
		$(this).html(newHtml);
	});
	$("div.subStringBytes").each(function(){
		doSubString(this);
	});
	$("td.subStringBytes").each(function(){
		doSubString(this);
	});
	$("span.subStringBytes").each(function(){
		doSubString(this);
	});
});

function doSubString(obj){
	var len = $(obj).attr("offsetWidth");
	var html = $.trim($(this).html());
	var newHtml = '';
	var suffix = false;
	for(var j=0;j<html.length;j++){  
		newHtml += html.charAt(j); 
	    $(obj).html(newHtml);  
	    if($(obj).attr("offsetWidth")>(len-70)){ 
	    	suffix = true;
	        break;  
	    }  
	} 
	if(suffix){
		newHtml += '...';
	}
	$(obj).html(newHtml);
}
分享到:
评论

相关推荐

    JS实现含有中文字符串的友好截取功能分析

    在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js 的 substr 或者 substring方法, 以及 字符串的length属性 对于非中文的字符串处理是很简单的,但是中文字符的 length 属性值 是1 而...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    从中截取字符串.asp 从中截取字符串 切分字符串.asp 切分字符串 删除字符串前后导空格.asp 删除字符串前导空格.asp 删除字符串后导空格.asp 反向截取字符串.asp ...

    php,js,css字符串截取的办法集锦

    mb_strimwidth — 获取按指定宽度截断的字符串 string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker = “” [, string $encoding = mb_internal_encoding() ]] )  参数说明:

    让很多内容只显示一部分,然后点击展开显示全部

    新闻内容,只显示部分,点击展开,可以显示全部新闻内容,点击收起,可以改变为只显示部分内容,通过JS截取字符串实现。

    cli-truncate:在终端中将字符串截断为特定宽度

    气候截断在终端中将字符串截断为特定宽度优雅地处理。 像用造型的弦子。 它还支持Unicode代理对和全角字符。安装 $ npm install cli-truncate用法 const cliTruncate = require ( 'cli-truncate' ) ;cliTruncate ( '...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    1、原生JavaScript实现字符串长度截取 2、原生JavaScript获取域名主机 3、原生JavaScript清除空格 4、原生JavaScript替换全部 5、原生JavaScript转义html标签 6、原生JavaScript还原html标签 7、原生JavaScript时间...

    javascript函数的解释

    10.JS中的取字符串长度是:(length) 11.JS中的字符与字符相连接使用+号. 12.JS中的比较操作符有:==等于,!=不等于,&gt;,&gt;=, 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的...

    js可编辑下拉菜单——树成原创

    作者:Persegrand.Spiniper(树成) ... 2、显示长度过长会出现换行现象,没有进行字符串截取。 3、现实效果并不完全像下拉菜单; 4、对于字符宽度调制存在缺陷; 如果有其他bug出现请邮件至spiniper@126.com

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    基于Java和Python的爬虫项目实战源码.zip

    链接的重要程度---关于URL字符串的函数,仅仅考察字符串本身,比如认为".com"和"home"的URL比".cc"和"map"高,定义为IL(P); 平均链接的深度---根据上面所分析的宽度优先的原则,计算全站的平均链接深度,然后认为...

    ASP升级.net资料大全(c#入门 语言规范 源码教程 学习笔记 技术资料 面试题 asp与.net代码生成器)

    辅助软件 aspx/asp代码生成器 语言规范 ... 字符串加密.txt 字幕显示屏幕保护.txt 自己动手用c#写控件.txt C#试题 简答题.txt 填空题.txt 问答题1.txt 问答题2.txt 选择题.txt 综合题.txt

    文章管理系统

    完善 字符串长度截取函数 5.改进前台底部友情链接间隔符 6.纠正留言和评论提交成功后会弹出验证码的BUG 7.纠正会员注册计算是否允许再次注册时出现页面错误BUG 8.纠正其他几个小细节 2012年04月17日 1.后台...

Global site tag (gtag.js) - Google Analytics