一、解釋
字符串截取中文為兩個字節,字母和數字為一個字符,普通的截取
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; }
