我需要手动从字符串中删除表情符号。这里的问题是表情符号是由多个 unicode 符号呈现的,例如:
'🔥'.split('') // output ['\uD83D', '\uDD25']
我可以检查前一个是否是
\uD83D
并将两者都删除,因为似乎每个表情符号都以它开头,但后来我发现有些表情符号可能包含多个表情符号:
'🧑💻'.split('') // ['\uD83E', '\uDDD1', '', '\uD83D', '\uDCBB']
虽然这里的模式很清楚,但我想知道是否有检测它们的最佳实践?
您必须使用字符串的替换方法来替换为空的“”。
例如:
yourString.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83E[\uDD10-\uDDFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF])/g, '');
或
yourString.replace(/([\uE000-\uF8FF]|\uD83D[\uDC00-\uDDFF]|\uD83C[\uDF00-\uDFFF])/g, '');