JS實(shí)現(xiàn)中英文混合文字溢出友好截取功能
在顯示字符串的時(shí)候,避免字符串過長(zhǎng)往往會(huì)對(duì)字符串進(jìn)行截取操作,通常會(huì)用到j(luò)s的 substr 或者 substring方法, 以及 字符串的length屬性
substr() 方法可在字符串中抽取從 start 下標(biāo)開始的指定數(shù)目的字符。
substring() 方法用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符。
對(duì)于非中文的字符串處理是很簡(jiǎn)單的,但是中文字符的 length 屬性值 是1 而不是 2 ,所以處理就不是很友好了。
例如 你有一個(gè)字符串 'abcdefg' 和 '我愛中華人民共和國'
你只想顯示五位長(zhǎng)度,往往會(huì)這樣操作 str = str.substr(0, 5);
但是 'abcde '與 '我愛中華人' 所占的寬度是不同的,因?yàn)橹形耐?字節(jié), 為了顯示效果更好, 特封裝如下函數(shù):
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS實(shí)現(xiàn)中英文混合文字溢出友好截取功能</title> </head> <body> <script> /** * JS實(shí)現(xiàn)中英文混合文字溢出友好截取功能 * @param text 字符串 * @param length 截取長(zhǎng)度 */ var zfc = {}; zfc.mixTextOverflow = function (text, length) { if (text.replace(/[\u4e00-\u9fa5]/g, 'aa').length <= length) { return text } else { var _length = 0 var outputText = '' for (var i = 0; i < text.length; i++) { if (/[\u4e00-\u9fa5]/.test(text[i])) { _length += 2 } else { _length += 1 } if (_length > length) { break } else { outputText += text[i] } } return outputText + '...' } } console.log(zfc.mixTextOverflow('留學(xué)NEW SAT essay 題目分析和匯總', 12)) </script> </body> </html>
輸出結(jié)果:
總結(jié)
以上所述是小編給大家介紹的JS實(shí)現(xiàn)中英文混合文字溢出友好截取功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Javascript 類型轉(zhuǎn)換、封閉函數(shù)及常見內(nèi)置對(duì)象操作示例
這篇文章主要介紹了Javascript 類型轉(zhuǎn)換、封閉函數(shù)及常見內(nèi)置對(duì)象操作,結(jié)合實(shí)例形式分析了JavaScript類型顯示轉(zhuǎn)換、隱式轉(zhuǎn)換、變量作用域、封閉函數(shù)及常用內(nèi)置對(duì)象相關(guān)操作技巧,需要的朋友可以參考下2019-11-11js實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03JavaScript學(xué)習(xí)筆記之創(chuàng)建對(duì)象
在JavaScript中對(duì)象是一種基本的數(shù)據(jù)類型,在數(shù)據(jù)結(jié)構(gòu)上是一種散列表,可以看作是屬性的無序集合,除了原始值其他一切都是對(duì)象。這篇文章主要給大家介紹JavaScript學(xué)習(xí)筆記之創(chuàng)建對(duì)象,需要的朋友參考下吧2016-03-03工作中比較實(shí)用的JavaScript驗(yàn)證和數(shù)據(jù)處理的干貨(經(jīng)典)
工作中比較實(shí)用的JavaScript驗(yàn)證和數(shù)據(jù)處理知識(shí)經(jīng)常會(huì)用到,下面小編通過查閱相關(guān)資料及日常記錄的知識(shí)分享到腳本之家平臺(tái),供大家參考2016-08-08jquery實(shí)現(xiàn)動(dòng)靜態(tài)條形統(tǒng)計(jì)圖
這篇文章主要介紹了jquery實(shí)現(xiàn)動(dòng)靜態(tài)條形統(tǒng)計(jì)圖,需要的朋友可以參考下2015-08-08基于javascript實(shí)現(xiàn)日歷功能原理及代碼實(shí)例
這篇文章主要介紹了基于javascript實(shí)現(xiàn)日歷效果原理及代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05