我想将给定的Unicode Chars转换为Emojis。 从一个函数,我得到一个字符串,有时它有emojis但作为Unicode(像这样\ ud83c \ uddee \ ud83c \ uddf9)。 所以我需要首先检查这个函数是否包含这些Unicode表情符号字符,然后我需要将它们转换为表情符号。
使用这行代码,我试图删除这些Unicode字符,但它不起作用。 但现在我需要找到一种方法将这些Unicode字符转换为Emojis而不是删除它们!
var fullnameWOE = fullname[1].replace(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g, '')
编辑:仍然没有找到解决这个问题的方法......
我必须补充一点,我从php文件中获取包含表情符号的字符串,所以如果有机会使用php来解决它?
答案 0 :(得分:0)
只需参考此How to find whether a particular string has unicode characters (esp. Double Byte characters)来检查是否存在unicodes。
但是为了用表情符号替换,我建议你使用字典,因为它会受到更多控制。
const raw = 'This string could contain an emoticon: {{example of emoticon unicode}}';
const EMOJS = {
'example of emoticon unicode': 'REPLACED WITH CORRESPONDING VALUE'
};
function compile(input, dict = EMOJS) {
return Object
.keys(dict)
.reduce(
(res, emojId) => {
let tmp;
do {
tmp = res;
res = res.replace(emojId, dict[emojId]);
} while(tmp !== res);
return res;
},
input
)
}
console.log({input: raw, output: compile(raw)});

答案 1 :(得分:0)
您要去的地方
function containsNonLatinCodepoints(s) {
return /[^\u0000-\u00ff]/.test(s);
}