JS實現(xiàn)中英文混合文字溢出友好截取功能
在顯示字符串的時候,避免字符串過長往往會對字符串進(jìn)行截取操作,通常會用到j(luò)s的 substr 或者 substring方法, 以及 字符串的length屬性
substr() 方法可在字符串中抽取從 start 下標(biāo)開始的指定數(shù)目的字符。
substring() 方法用于提取字符串中介于兩個指定下標(biāo)之間的字符。
對于非中文的字符串處理是很簡單的,但是中文字符的 length 屬性值 是1 而不是 2 ,所以處理就不是很友好了。
例如 你有一個字符串 'abcdefg' 和 '我愛中華人民共和國'
你只想顯示五位長度,往往會這樣操作 str = str.substr(0, 5);
但是 'abcde '與 '我愛中華人' 所占的寬度是不同的,因為中文往往占2字節(jié), 為了顯示效果更好, 特封裝如下函數(shù):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS實現(xiàn)中英文混合文字溢出友好截取功能</title>
</head>
<body>
<script>
/**
* JS實現(xiàn)中英文混合文字溢出友好截取功能
* @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('留學(xué)NEW SAT essay 題目分析和匯總', 12))
</script>
</body>
</html>
輸出結(jié)果:

總結(jié)
以上所述是小編給大家介紹的JS實現(xiàn)中英文混合文字溢出友好截取功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
countUp.js實現(xiàn)數(shù)字動態(tài)變化效果
這篇文章主要為大家詳細(xì)介紹了countUp.js實現(xiàn)數(shù)字動態(tài)變化效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10
JavaScript實現(xiàn)翻轉(zhuǎn)圖片的三種方法小結(jié)
有時,我們可能需要翻轉(zhuǎn)Web應(yīng)用中的媒體元素,所以這篇文章小編為大家詳細(xì)介紹了三種使用JavaScript翻轉(zhuǎn)圖片的方法,希望對大家有所幫助2024-01-01
微信小程序開發(fā)之錄音機(jī) 音頻播放 動畫實例 (真機(jī)可用)
這篇文章主要介紹了微信小程序開發(fā)之錄音機(jī) 音頻播放 動畫實例 (真機(jī)可用),這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2016-12-12

