我对emoji
字符unicode一无所知,并试图从输入中删除所有表情符号,发现了一个代码:
var ranges = [
'\ud83c[\udf00-\udfff]', // U+1F300 to U+1F3FF
'\ud83d[\udc00-\ude4f]', // U+1F400 to U+1F64F
'\ud83d[\ude80-\udeff]' // U+1F680 to U+1F6FF
];
<强> JSFiddle (从CSS部分复制表情符号进行测试)
它将删除一些但不是新的表情符号。如何将这些新的表情符号 unicode 范围包含到此代码中?
例如,这不会删除 Nerd 脸
表情符号,并且unicode为here
最佳答案
function removeEmoji(text) {
var res = '';
for(var i = 0; i < text.length; i++) {
var c = text[i];
// Get UTF-32 code
var code = c.charCodeAt(0);
if(code >= 0xd800 && code < 0xdc00) {
c += text[++i];
code = (code - 0xd800) << 10;
code |= c.charCodeAt(1) - 0xdc00;
code += 0x10000;
}
// Skip Emoji symbols
if (code < 0x1f000 || code >= 0x1fa00) {
res += c;
}
}
return res
}
var s = removeEmoji('a😀b'); // 'ab'
关于javascript - jquery 删除所有表情符号包括新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367464/