|
主题: 共享:将字符串截取成指定的长度
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#12005/9/2 10:48:38
在将数据放入表格中时,经常会遇到有些数据过长,会把表格撑散的情况,这时就需要对数据串进行格式化操作,一般超出部分用省略号代替。这可以用样式表来实现:text-overflow:ellipsis; white-space:nowrap;我这里要讲的是用脚本来实现,请大家指正。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#22005/9/2 10:51:32
对于javascript,使用下面的两个函数
//检测字符串长度,一个中文为2个字节 function strLen(str){ var reallength; if(str=="" || str==null){ reallength=0; }else{ reallength=str.length; for(var i=0;i<str.length;i++){ if(str.charCodeAt(i)>8000)reallength++; } } return reallength; }
//字符串截取显示,显示前 num 个字符,后接省略号,一个中文为2个字节 function strShort(str,num){ var shortstring; if(strLen(str)<=num){ shortstring=str; }else{ shortstring=str; do{ shortstring=shortstring.substr(0,shortstring.length-1); }while(strLen(shortstring)>num-2); shortstring+="…"; } return shortstring; }
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#32005/9/2 11:00:59
使用方法 比如我要做一个超链接,链接文本为:"5D多媒体,原创的魅力",链接到5D首页,用JS的写法是:
<script type="text/javascript">
var mytext="5D多媒体,原创的魅力";
var myurl="http://www.5d.cn";
document.write("<a href='"+myurl+"' target='_blank'>"+mytext+"</a>")
</script>
可是,如果这个超链如果放在一个只能容纳4个汉字的表格中,就要对文本进行截取了。4个汉字的长度为8(第个汉字长为2),就要做如下改动了:
<script type="text/javascript">
var mytext="5D多媒体,原创的魅力";
var myurl="http://www.5d.cn";
document.write("<a href='"+myurl+"' target='_blank' title='"+mytext+"'>"+strShort(mytext,8)+"</a>")
</script>
对字符串截取后,要为超链接加上title标记,对别人友好一点吧。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#42005/9/2 11:02:44
效果如下
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#52005/9/2 11:06:17
对于VBScript,函数如下:
'检测字符串长度,一个中文为2个字节 Function StrLen(str) Dim I If str="" OR IsNull(str) Then StrLen=0 Else StrLen=Len(str) For I=1 To Len(str) If ASC(Mid(str,I,1))<0 Then StrLen=StrLen+1 Next End If End Function '字符串截取显示,显示前 num 个字符,后接省略号,一个中文为2个字节 Function StrShort(str,num) Dim I If StrLen(str)<=num Then StrShort=str Else StrShort=str Do While StrLen(StrShort)>(num-2) StrShort=Left(StrShort,Len(StrShort)-1) Loop StrShort=StrShort & "…" End If End Function 用法基本相同,就不再多说了。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#62005/9/2 11:09:01
这是我平时工作中经常用到的两个小函数,拿出来与大家分享,如果有更好的方法,请共享出来吧。如果大家用的上,不要忘了感谢5D呀。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#72005/9/13 9:48:21
看来这东西没有用呀,以后还是不帖了吧。本来还想接下去写呢。
|