鍍金池/ 問答/HTML/ js 如何過濾utf8非3字節(jié)編碼的字符串

js 如何過濾utf8非3字節(jié)編碼的字符串

js 如何過濾utf8非3字節(jié)編碼的字符串

回答
編輯回答
愿如初

Unicode 和 UTF-8 之間的轉(zhuǎn)換關(guān)系表 ( x 字符表示碼點(diǎn)占據(jù)的位 )

碼點(diǎn)的位數(shù)    碼點(diǎn)起值    碼點(diǎn)終值    字節(jié)序列    Byte 1    Byte 2    Byte 3    Byte 4    Byte 5    Byte 6
  7    U+0000    U+007F    1    0xxxxxxx
11    U+0080    U+07FF    2    110xxxxx    10xxxxxx
16    U+0800    U+FFFF    3    1110xxxx    10xxxxxx    10xxxxxx
21    U+10000    U+1FFFFF    4    11110xxx    10xxxxxx    10xxxxxx    10xxxxxx
26    U+200000    U+3FFFFFF    5    111110xx    10xxxxxx    10xxxxxx    10xxxxxx    10xxxxxx
31    U+4000000    U+7FFFFFFF    6    1111110x    10xxxxxx    10xxxxxx    10xxxxxx    10xxxxxx    10xxxxxx

非3個(gè)字節(jié)就是0x0800-0xffff之外的

const str = '1。中\(zhòng)文a';
const reg = /[^\u0800-\uffff]/g;
str.replace(reg,'');
2018年9月11日 12:56