Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于检测表情的优化正则表达式&;仅在字符串javascript中使用表情符号_Javascript_Regex_React Native - Fatal编程技术网

用于检测表情的优化正则表达式&;仅在字符串javascript中使用表情符号

用于检测表情的优化正则表达式&;仅在字符串javascript中使用表情符号,javascript,regex,react-native,Javascript,Regex,React Native,我正在开发一个React本机聊天应用程序,其中我需要两个正则表达式,一个用于检测字符串是否包含表情符号,另一个用于检测字符串是否包含表情符号,仅用于设置大消息列表的样式 经过一些研究,我发现了最快、最完整的正则表达式,用于检测字符串是否有表情符号(在第一次匹配后停止),它可以完美地工作: /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u030

我正在开发一个React本机聊天应用程序,其中我需要两个正则表达式,一个用于检测字符串是否包含表情符号,另一个用于检测字符串是否包含表情符号,仅用于设置大消息列表的样式

经过一些研究,我发现了最快、最完整的正则表达式,用于检测字符串是否有表情符号(在第一次匹配后停止),它可以完美地工作:

 /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*/
我知道它是如何工作的,所以我对它进行了重构,以检测字符串是否只包含表情符号——5是表情符号的最大数量

/^((?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*){0,5}$/
只需将整个正则表达式分组,并在开始处添加^,在结束处添加{0,5}$


<> P>有没有更好的方法来做第二个正则表达式?< /p>你认为什么是iMijo?iOS和Android?到,共有4022个表情符号,您的模式仅匹配其中1695个。在第一次匹配后停止-您没有指定
g
标志。如果你需要匹配任何0个或更多的表情符号,你就不应该用另一个组来包装<代码>(…)*/COD>,只需在开始时添加<代码> ^ <代码>结尾处的代码> $< /代码>(在代码> */代码>之后)。你认为是什么?到,共有4022个表情符号,您的模式仅匹配其中1695个。在第一次匹配后停止-您没有指定
g
标志。如果需要匹配任何0个或多个表情符号,则不应将
(…)*
与其他组包装,只需在开头添加
^
,在结尾添加
$
(紧跟
*
)。