javascript截取指定长度字符串后面加点代码实例
在实际应用中经常需要用到截取字符串的功能,比如新闻类型的网站。
如果标题过长的话,就需要截取一定长度的字符串,省略的部分将会以点或者其他形式表示。
代码实例如下:
function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ""; for (var i = 0; i < str.length; i++) { if (icount < len - 1) { temp = str.substr(i, 1); if (patrn.exec(temp) == null) { icount = icount + 1 } else { icount = icount + 2 } strre += temp } else { break } } return strre + "..." } var str="前端教程网的最新网址是pipipi.net,它成立于2014年"; console.log(cutstr(str,35));
上面的代码实现了我们的要求,下面介绍一下它的实现过程。
一.代码注释:(1).function cutstr(str, len) {},第一个参数规定字符串,第二个参数规定要截取的长度。
(2).var temp,声明一个变量用来暂时存储截取的字符。
(3).var icount = 0,声明一个变量并初始化为0,用作计数功能。
(4).var patrn = /[^\x00-\xff]/,此正则表达式能够匹配双字节字符。
(5).var strre = "",存储最终的结果字符串。
(6).for (var i = 0; i < str.length; i++),对字符串进行遍历操作。
(7).if (icount < len - 1),因为icount是从0开始的,所以小于len-1就是小于指定的长度。
(8).temp = str.substr(i, 1),截取此字符。
(9).if (patrn.exec(temp) == null) {
icount = icount + 1
} e
lse {
icount = icount + 2
},如果匹配为空,那么就是单字节字母,长度加1,否则就是双字节字符,长度加2.
(10).strre += temp,进行字符串链接操作。
(11).else {
break
},否则的话跳出for循环。
(12).return strre + "...",最终的字符串。
二.相关阅读:
(1).substr()方法可以参阅javascript substr()一章节。
(2).exec()方法可以参阅正则表达式exec()函数一章节。
(3).break语句可以参阅javascript break与continue一章节。