【问题标题】:How to parse emojis in JS?如何在 JS 中解析表情符号?
【发布时间】:2021-11-04 17:24:34
【问题描述】:

我在数据库中存储了一些纯字符串,其中包含一些表情符号,例如:

hello ???? world ????

我需要这些表情符号更大。

所以结果应该是:function parseEmoji(string)

hello <span class="emoji>????</span> world <span class="emoji>????</span>

关于如何检测和替换字符串中的表情符号有什么想法吗?

【问题讨论】:

标签: javascript emoji


【解决方案1】:

以下 EBNF 可用于快速扫描可能的表情符号。然后可以在必要时通过根据定义执行有效性测试或检查 RGI 表情符号集来验证这些可能的表情符号。它比当前定义中的表达式要简单得多。它包括一个表情符号的超集,作为这种简单性的副产品,但可以通过有效性测试清除额外的表情符号。

EBNF Notes
possible_emoji :=
flag_sequence
| zwj_element (\x{200D} zwj_element)*
\x{200D} = zero-width joiner
flag_sequence :=
\p{RI} \p{RI}
\p{RI} = Regional_Indicator
zwj_element :=
\p{Emoji} emoji_modification?
emoji_modification :=
\p{EMod}
| \x{FE0F} \x{20E3}?
\p{EMod} = Emoji_Modifier
\x{FE0F} = emoji VS
\x{20E3} = enclosing keycap
tag_modifier :=
[\x{E0020}-\x{E007E}]+ \x{E007F}
\x{E00xx} are tags
\x{E007F} = TERM tag

从这些 EBNF 规则可以生成一个正则表达式,如下所示。虽然这个正则表达式可能看起来很复杂,但它比定义的结果要简单得多。直接使用定义会导致正则表达式复杂很多倍,但仍需要通过有效性测试进行验证。

Regex
\p{RI} \p{RI}
| \p{Emoji}
( \p{EMod}
| \x{FE0F} \x{20E3}?
| [\x{E0020}-\x{E007E}]+ \x{E007F} )?
(\x{200D} \p{Emoji}
( \p{EMod}
| \x{FE0F} \x{20E3}?
| [\x{E0020}-\x{E007E}]+ \x{E007F} )?
)*

——Unicode® Technical Standard #51, Unicode Emoji, Section 1.4.9 EBNF and Regex

鉴于以上情况,可以推导出以下与 JavaScript 兼容的正则表达式:

/\p{RI}\p{RI}|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?(\u{200D}\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?)+|\p{EPres}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})/gu

上面的正则表达式与string replace 配对,将允许我们用包裹表情符号的跨度标签替换表情符号。 $&amp; 插入匹配的子字符串(表情符号)。

'hello ? world ?'.replace(/\p{RI}\p{RI}|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?(\u{200D}\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?)+|\p{EPres}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})/gu, '<span>$1</span>')

此解决方案确实附带了一个警告,即它会匹配不是表情符号的东西,如链接的技术标准中所述。我目前还没有弄清楚如何根据规范编写有效性测试,所以没有尝试过。您可能希望这样做,或者在误报风险与找出这一点所需的努力之间取得平衡。

下面是一个演示,其中(很多)表情符号被一个跨度包裹着,该跨度具有给它一个 1px 纯红色边框的样式。

document.body.innerHTML = `??????????????????☺️???????????????????‍?️?‍??????‍??????????????????‍???????????☹️???????????????????????????☠️??????????????????????????????❣️?❤️‍?❤️‍?❤️???????????????️???️‍?️?️?️?????????????????????????️??????????✋✋?✋?✋?✋?✋?????????????????????????????????????????????✌️✌?✌?✌?✌?✌????????????????????????????????????????????????????????????????????????????????????????????????????☝️☝?☝?☝?☝?☝???????????????????????✊✊?✊?✊?✊?✊??????????????????????????????????????????????????????????????????????????????????????????✍️✍?✍?✍?✍?✍??????????????????????????????????????????????????????????????????????????????????????????????????️???????????????????????????????????????????????????????????????????????????????????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀?‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍?????????????‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀?‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?????????????????????????????????????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀?‍⚕️?‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕?‍⚕️?‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕?‍⚕️?‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕??‍⚕️??‍⚕?‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍⚖️?‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖?‍⚖️?‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖?‍⚖️?‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖??‍⚖️??‍⚖?‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍✈️?‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈?‍✈️?‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈?‍✈️?‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈??‍✈️??‍✈?‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍?????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀?️???????????️‍♂️??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?️‍♀️??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀???????????????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??????????????????????????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??????????????????????????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀???????????????????????‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍???????????????????????????????????‍???‍???‍???‍???‍???‍?????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♂️?‍♂?‍♀️?‍♀??‍♂️?‍♂?‍♀️?‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀?‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍??‍???‍???‍???‍???‍???‍?????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀???????????????????????️????????????‍♂️?‍♂?‍♀️?‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????⛷️????????????️???????????️‍♂️??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?️‍♀️??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀⛹️⛹?⛹?⛹?⛹?⛹?⛹️‍♂️⛹?‍♂️⛹?‍♂⛹?‍♂️⛹?‍♂⛹?‍♂️⛹?‍♂⛹?‍♂️⛹?‍♂⛹?‍♂️⛹?‍♂⛹️‍♀️⛹?‍♀️⛹?‍♀⛹?‍♀️⛹?‍♀⛹?‍♀️⛹?‍♀⛹?‍♀️⛹?‍♀⛹?‍♀️⛹?‍♀?️???????????️‍♂️??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?️‍♀️??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♂️?‍♂?‍♀️?‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀????????????‍♂️?‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂??‍♂️??‍♂?‍♀️?‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀??‍♀️??‍♀???????????????????????‍?‍???‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍???????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍?????????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍?????????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍??????‍?‍????‍?‍????‍?‍????‍?‍????‍?‍?????????????????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍???‍❤️‍?‍??‍❤‍?‍???‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍???‍❤️‍?‍??‍❤‍?‍???‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍???‍❤️‍?‍??‍❤‍?‍???‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍????‍❤️‍?‍????‍❤‍?‍???????????????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍???‍❤️‍??‍❤‍???‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍???‍❤️‍??‍❤‍???‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍???‍❤️‍??‍❤‍???‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍❤️‍????‍❤‍????‍?‍??‍?‍??‍?‍?‍??‍?‍?‍??‍?‍?‍??‍?‍??‍?‍??‍?‍?‍??‍?‍?‍??‍?‍?‍??‍?‍??‍?‍??‍?‍?‍??‍?‍?‍??‍?‍?‍??‍??‍?‍??‍??‍?‍??‍?‍??‍??‍?‍??‍??‍?‍??‍?‍??️????????????‍????????‍⬛????????????????????????????????????️?????‍❄️?‍❄?????????????????️??????????????????????????????????????️?️?????????️??????????????☘️?????????????????????????????️?????????????????????????????????????????????????????????????????????????????????☕??????????????????️?????????️???️⛰️???️?️?️?️?️?️?️?️?????️?️??????????????????⛪???⛩️?⛲⛺???️?????♨️???????????????????????????????????️?️??????????️?️?️⛽?????⚓⛵???️⛴️?️?✈️?️?????????️???️?⌛⏳⌚⏰⏱️⏲️?️?????????????????????????????????????️☀️???⭐???☁️⛅⛈️?️?️?️?️?️?️?️?️?️???☂️☔⛱️⚡❄️☃️⛄☄️????????✨?????????????️?️??️?????⚽⚾?????????????????⛳⛸️???????????????️??????♠️♥️♦️♣️♟️?????️???????️??????????????????????️????????????????⛑️?????????????????️?️?️??????????????☎️???????️?️⌨️?️?️???????️?️?????????️??????????????????️???️??????????✉️????????????️✏️✒️?️?️?️?️?????️???️?️?????????️??✂️?️?️?️??????️??⛏️⚒️?️?️⚔️????️????⚙️?️⚖️??⛓️????⚗️????????????????️?️???????????????????⚰️?⚱️?????♿?????????⚠️?⛔????????☢️☣️⬆️↗️➡️↘️⬇️↙️⬅️↖️↕️↔️↩️↪️⤴️⤵️????????⚛️?️✡️☸️☯️✝️☦️☪️☮️??♈♉♊♋♌♍♎♏♐♑♒♓⛎???▶️⏩⏭️⏯️◀️⏪⏮️?⏫?⏬⏸️⏹️⏺️⏏️??????♀️♂️⚧️✖️➕➖➗♾️‼️⁉️❓❔❕❗〰️??⚕️♻️⚜️???⭕✅☑️✔️❌❎➰➿〽️✳️✴️❇️©️®️™️#️⃣*️⃣0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣???????️??️???ℹ️?Ⓜ️???️??️?????️?️??????????㊗️㊙️?????????⚫⚪???????⬛⬜◼️◻️◾◽▪️▫️???????????????️?️‍??️‍⚧️?‍☠️?‍☠?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????`.replace(/\p{RI}\p{RI}|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?(\u{200D}\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?)+|\p{EPres}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})/gu, '&lt;span&gt;$&amp;&lt;/span&gt;');
span {
  border: 1px solid red;
}

【讨论】:

    猜你喜欢
    • 2015-12-22
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2017-09-26
    • 2016-02-14
    • 2015-10-30
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多