javascript擷取指定長度字串後面加點程式碼例項

admin發表於2017-04-06

在實際應用中經常需要用到擷取字串的功能,比如新聞型別的網站。

如果標題過長的話,就需要擷取一定長度的字串,省略的部分將會以點或者其他形式表示。

程式碼例項如下:

[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="螞蟻部落的最新網址是softwhy.com,它成立於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一章節。

相關文章