需求背景
输入框禁止输入表情,这里的方法是先校验表情,如有表情则替换为空。
代码
// utf8mb4 正则
const utf8mb4Reg = /[^\u0000-\uFFFF]/g;
// emoji 表情正则
const emojiReg = /(\ud83c[\udf00-\udfff])|(\ud83d[\udc00-\ude4f])|(\ud83d[\ude80-\udeff])/g;
// 包含 utf8mb4 的 4 字节
const isUTF8MB4 = utf8mb4Reg.test(value);
// 包含 emoji 表情
const isEmoj = emojiReg.test(value);
// 校验特殊字符 并删除
isUTF8MB4 && (value = value.replace(utf8mb4Reg, ""));
isEmoj && (value = value.replace(emojiReg, ""));