js字符串截取 包含對中文處理


一、解釋

字符串截取中文為兩個字節,字母和數字為一個字符,普通的截取

substr()不論中文還是字母都是按1位截取的,現在就處理含有漢字的字符串截取
 
 
二、例子:
abc碧果果def
  const test = 'ab碧果果def';
    console.log(this.Substr(test, 2, 6));
    console.log(this.Substr(test, 0, 3));

 

 

三、代碼

 // 字符串截取 包含對中文處理,str需截取字符串,start開始截取位置,n截取長度
  Substr(str, start, n) { // eslint-disable-line
    if (str.replace(/[\u4e00-\u9fa5]/g, '**').length <= n) {
      return str;
    }
    let len = 0;
    let tmpStr = '';
    for (let i = start; i < str.length; i++) { // 遍歷字符串
      if (/[\u4e00-\u9fa5]/.test(str[i])) { // 中文 長度為兩字節
        len += 2;
      } else {
        len += 1;
      }
      if (len > n) {
        break;
      } else {
        tmpStr += str[i];
      }
    }
    return tmpStr;
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM