欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實(shí)現(xiàn)中英文混合文字溢出友好截取功能

 更新時(shí)間:2018年08月06日 17:05:17   作者:抖音  
這篇文章主要介紹了JS實(shí)現(xiàn)中英文混合文字溢出友好截取功能,通常會(huì)用到j(luò)s的 substr 或者 substring方法, 以及 字符串的length屬性。需要的朋友可以參考下

在顯示字符串的時(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)文章

最新評(píng)論