如何截取字符串,使其在浏览器上显示相同长度?
2014-09-23 16:30
495 查看
如何实现如下功能?
乍一看是不是想到了直接通过substring截取,但是这样会面临一个问题:有的标题中有中文,有的标题中有字母数字,这样如果直接采用substring截取固定个数字符,浏览器上显示仍然会不整齐,这是因为浏览器上显示中文所占用的像素要多于字母和数字。采用此法截取后效果如下图:
如何解决问题呢?
通过正则表达式匹配字符串,得出真实长度,之后按照真实长度等比例进行截取:
(此在js中进行截取)
<script type="text/javascript">
var title="${v.title}";
var id="${v.id}";
var realLength=(title.replace(/[^\x00-\xff]/g,"**").length+1)/2
if(realLength>14){
title=title.substring(0,
14*(title.length/realLength))+"...";
}
$("#"+id).html(title);
//alert(realLength);
</script>
乍一看是不是想到了直接通过substring截取,但是这样会面临一个问题:有的标题中有中文,有的标题中有字母数字,这样如果直接采用substring截取固定个数字符,浏览器上显示仍然会不整齐,这是因为浏览器上显示中文所占用的像素要多于字母和数字。采用此法截取后效果如下图:
如何解决问题呢?
通过正则表达式匹配字符串,得出真实长度,之后按照真实长度等比例进行截取:
(此在js中进行截取)
<script type="text/javascript">
var title="${v.title}";
var id="${v.id}";
var realLength=(title.replace(/[^\x00-\xff]/g,"**").length+1)/2
if(realLength>14){
title=title.substring(0,
14*(title.length/realLength))+"...";
}
$("#"+id).html(title);
//alert(realLength);
</script>
相关文章推荐
- 关于PHP字符串截取显示相同长度的字符以及UTF8下的ASCII编码
- 几种常见的字符串长度截取显示方法
- ASP.net:截取固定长度字符串显示在页面,多余部分显示为省略号
- DEDE中如何过滤掉Html标签,并且截取字符串长度
- C# 截取中英文混合字符串分行显示宽度相同
- 高效率的C#截取指定长度字符串,大于指定长度的,在末尾显示指定字符,默认为"..."
- 写了一个字符串截取一定长度的代码,中文两个字符,英文一个字符,如果截断了自动用一个.或两个.来对齐,用于标题的显示
- 截取固定长度字符串显示在页面,多余部分显示为省略号(区分汉字和字符)
- DEDE中如何过滤掉Html标签,并且截取字符串长度
- DataBinder.Eval中如何截取一定长度的字符串
- sql 2005 中如何自动生成不重复的,长度相同字符串作为一个数据表的id
- ASP.net:截取固定长度字符串显示在页面,多余部分显示为省略号
- C#如何根据字节截取字符串指定长度
- 项目经历——截取超出长度的字符串,鼠标移动到上面显示全部内容
- 截取固定长度字符串显示在页面,多余部分显示为省略号(区分汉字和字符)
- 用CSS自动截取固定长度字符串,显示省略效果
- 使用正则表达式截取字符串显示内容长度
- 设置显示内容的长度(字符串截取)c标签
- 高效率的C#截取指定长度字符串,大于指定长度的,在末尾显示指定字符,默认为"..."
- C# 截取中英文混合字符串分行显示宽度相同