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一章节。

回复

我来回复
  • 暂无回复内容