js擷取指定位元組長度的字串

2021-08-20 03:54:32 字數 621 閱讀 7342

預設的擷取字串都是根據字元長度或位置擷取的,典型的兩個方法是substr和substring。

這樣導致的問題是擷取同樣長度的字串時,多位元組字元(漢字等)和單位元組字元(半形英文本母、半形數字)佔的位置長度差距較大,視覺上不太美觀,比如同樣是10個字元:

壹貳叄肆伍陸柒捌玖拾

abcdefghih

好了,上**了,下面是自己寫的根據指定位元組長度擷取字串的函式:

/*

* param str 要擷取的字串

* param l 要擷取的位元組長度,注意是位元組不是字元,乙個漢字兩個位元組

* return 擷取後的字串 */

function

cutstr(str,l)

for(var i=0,j=0;i)else

if(j<=l)

else

}}//

用例alert(cutstr("測試1字串哈哈哈哈",10));

alert(cutstr("abcdefghigklmn",10));

編碼這東西一直讓人挺害怕的,總覺得迷迷糊糊的,**中有不對的地方歡迎指正,或者有什麼現成的函式或更簡單的方法也請大牛指點一下。

謝謝

js擷取指定位元組長度的字串 jquery

擷取指定位元組長度的字串 注 半形長度為1,全形長度為2 str 字串 len 擷取長度 return 擷取後的字串及是否擷取的標記 擴充套件用 code 1 字串截斷 code 0 字串未截斷 function cutstrbyte str,len var code 1 預設返回code值,已截斷...

擷取相同位元組長度的字串

做這個主要是為了在echarts圖的xy軸上實現溢位隱藏並省略的作用。乙個中文字元 2位元組 例 abs 乙個英文本元 1位元組 例 視覺化 相同字元長度對應的實際長度是不一樣的,不能用簡單的substring取出相同物理長度的字串 例 取8位元組長度字串 思路首先新增string原型方法 這個是從...

擷取指定長度的字串

函式說明 擷取指定長度的字串 utf 8專用 漢字和大寫字母長度算1,其它字元長度算0.5 param string str 原字串 param int len 擷取長度 param string etc 省略字元.return string 擷取後的字串 if function exists re...