gpt4 book ai didi

javascript - 如何删除(Javascript)字符串中除表情符号以外的所有内容?

转载 作者:行者123 更新时间:2023-11-30 16:41:27 32 4
gpt4 key购买 nike

我正在尝试多个正则表达式,但我无法让它们工作。

我有一个简单的输入,用户可以输入他们喜欢的任何内容,只是最终结果必须包含表情符号。为此,我必须从字符串中删除不是表情符号的每个字符,然后检查长度是否 >= 1。

所以基本上是这样的:asf..?23kj😔gasdf..😎,fwe34 应该变成这样:😔😎。然后我会检查长度以确认它 >=1,然后我就可以开始了。

我使用 Mac OS 自己的虚拟表情符号键盘来沿着输入中的文本书写表情符号,以防你发现了解它很有用。

最佳答案

根据我从评论中得到的信息,其中一些可能有帮助也可能没有帮助 -



验证字符串是否包含 1 个或多个表情符号:

 # ^(?=[\S\s]*(?:\ud83d[\ude00-\ude4f]))

^
(?=
[\S\s]*
(?: \ud83d [\ude00-\ude4f] )
)


只删除表情符号,剩下的(全局):

查找:(?:\ud83d[\ude00-\ude4f])*((?:(?!\ud83d[\ude00-\ude4f])[\S\s])+)(? :\ud83d[\ude00-\ude4f])*
替换:$1

 (?: \ud83d [\ude00-\ude4f] )*
( # (1 start)
(?:
(?! \ud83d [\ude00-\ude4f] )
[\S\s]
)+
) # (1 end)
(?: \ud83d [\ude00-\ude4f] )*


删除除表情符号以外的所有内容(全局):

查找:((?:\ud83d[\ude00-\ude4f])*)(?:(?!\ud83d[\ude00-\ude4f])[\S\s])+(( ?:\ud83d[\ude00-\ude4f])*)
替换:$1$2

 (                                       # (1 start)
(?: \ud83d [\ude00-\ude4f] )*
) # (1 end)
(?:
(?! \ud83d [\ude00-\ude4f] )
[\S\s]
)+
( # (2 start)
(?: \ud83d [\ude00-\ude4f] )*
) # (2 end)

编辑:要使用不同的表情符号 utf16 范围,请执行此操作

不同的高代理:

(?:
High_surrogate_A [Low_surrogate_start_A-Low_surrogate_end_A]
| High_surrogate_B [Low_surrogate_start_B-Low_surrogate_end_B]
| High_surrogate_C [Low_surrogate_start_C-Low_surrogate_end_C]
)

或者,相同的高代理,不同的低代理范围:

(?:
High_surrogate [Low_surrogate_start1-Low_surrogate_end1Low_surrogate_start2-Low_surrogate_end2]
)

或者,混合:

(?:
High_surrogate_A [Low_surrogate_startA1-Low_surrogate_endA1Low_surrogate_startA2-Low_surrogate_endA2]
| High_surrogate_B [Low_surrogate_start_B-Low_surrogate_end_B]
)

你在哪里看到:

(?:\ud83d [\ude00-\ude4f] )*

在占位符 HERE 中替换上述内容之一

这里*

你在哪里看到:

(?!\ud83d [\ude00-\ude4f] )

在占位符 HERE 中替换上述内容之一

(?! 这里 )


注意 - 您也可以添加高代理项范围,但是所有高代理项必须共享相同的低代理项范围。

关于javascript - 如何删除(Javascript)字符串中除表情符号以外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31918322/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com