由於表情字元占4個位元組(2個unicode字元),在做刪除的時候無法判斷,該退格1個字元,還是2個字元,才是正確的。下麵介紹判斷方法,先看下麵的測試圖 1.字元串的長度不等於看到的字元串中的字元個數 2.字元串的codePoint遍歷可以正確分割出看到的字元 3.charCodeAt和codePoi ...
由於表情字元占4個位元組(2個unicode字元),在做刪除的時候無法判斷,該退格1個字元,還是2個字元,才是正確的。下麵介紹判斷方法,先看下麵的測試圖
1.字元串的長度不等於看到的字元串中的字元個數
2.字元串的codePoint遍歷可以正確分割出看到的字元
3.charCodeAt和codePointAt值的不同,就說明有特殊字元存在
綜上所述有兩種辦法去判斷刪除字元該刪除一個字元還是兩個字元
1.codePoint遍歷後,把codePoint長度是2的索引記錄下來,比如(9-10),刪除字元時遇到10索引,就刪除兩個字元
2.charCodeAt(i-1) == codePointAt(i-1),索引的上一位置兩個碼是否相同,如果不同,就刪除兩個字元