您好,登錄后才能下訂單哦!
在顯示字符串的時候,避免字符串過長往往會對字符串進行截取操作,通常會用到js的 substr 或者 substring方法, 以及 字符串的length屬性
substr() 方法可在字符串中抽取從 start 下標開始的指定數目的字符。
substring() 方法用于提取字符串中介于兩個指定下標之間的字符。
對于非中文的字符串處理是很簡單的,但是中文字符的 length 屬性值 是1 而不是 2 ,所以處理就不是很友好了。
例如 你有一個字符串 'abcdefg' 和 '我愛中華人民共和國'
你只想顯示五位長度,往往會這樣操作 str = str.substr(0, 5);
但是 'abcde '與 '我愛中華人' 所占的寬度是不同的,因為中文往往占2字節, 為了顯示效果更好, 特封裝如下函數:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS實現中英文混合文字溢出友好截取功能</title> </head> <body> <script> /** * JS實現中英文混合文字溢出友好截取功能 * @param text 字符串 * @param length 截取長度 */ 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('留學NEW SAT essay 題目分析和匯總', 12)) </script> </body> </html>
輸出結果:
總結
以上所述是小編給大家介紹的JS實現中英文混合文字溢出友好截取功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。