Javascript 在字符串中查找表情符号

Javascript 在字符串中查找表情符号,javascript,regex,unicode,emoji,Javascript,Regex,Unicode,Emoji,所以我试图找到并替换字符串中的表情符号。到目前为止,这是我使用regexp的方法 const replaceMojis=函数(字符串){ String.prototype.regexIndexOf=函数(regex,startpos){ const indexOf=this.substring(startpos | | 0).search(regex); 返回(indexOf>=0)?(indexOf+(startpos | | 0)):indexOf; } //生成regexp 让regexp

所以我试图找到并替换字符串中的表情符号。到目前为止,这是我使用regexp的方法

const replaceMojis=函数(字符串){
String.prototype.regexIndexOf=函数(regex,startpos){
const indexOf=this.substring(startpos | | 0).search(regex);
返回(indexOf>=0)?(indexOf+(startpos | | 0)):indexOf;
}
//生成regexp
让regexp;
试一试{
regexp=newregexp('\\p{Emoji}',“gu”);
}捕获(e){
//4火狐{
//这里什么都没有
//const unicode=staticHTML.charCodeAt(index);//.toString(16);
})
问题是我只能得到一个数组,其中的emojis在字符串中,但是只有这些索引我不能替换它们,因为我不知道它们占用了多少(UTF-16)字节。 同样为了替换它们,我需要知道我要替换的表情符号是什么


那么,有没有一种方法可以同时获取表情符号的长度?或者有没有一种比我的方法更好(也许更简单)的方法来替换表情符号?

好吧,您已经有了一个工作的RegExp,因此可以使用
字符串。替换

string.replace(regexp,my_emojy=>{
返回“”;
});

因此,您根本不需要查找任何索引。

您已经有了一个工作的RegExp,因此可以使用
字符串。替换

string.replace(regexp,my_emojy=>{
返回“”;
});

所以你根本不需要找到任何索引。

好吧,结果我只是有一点精神障碍。

要找到表情符号,我不需要像前面提到的那样获取索引。虽然只是使用
字符串。用
/\p{Emoji}/gu替换
,但它不起作用,因为它会分解,例如好吧,所以我只是有一点精神障碍。

要查找表情符号,我不需要获得前面提到的WolverinDEV索引。尽管只使用
string。用
/\p{Emoji}替换
Gu/<代码>不起作用,例如,你认为什么是表情?有成千上万的这些东西。你的目标是什么?@布拉德,我指的是所有包括肤色在内的东西,基本上你选择的一切都与<代码> /\p{EMMOJ}有关。/gu
expression。我想用表情符号的SVG替换它们。想法是找到一个表情符号,获取它的unicode(不是字符码)并用SVG替换。但是一个(长)unicode用多个UTF-16字符码编码,所以表情符号是各种UTF-16字符长的,所以我需要知道“长”有多长一个表情是用来代替它的。你到底是怎么看待表情符号的?你的目标是什么?“布拉德,我的意思是所有的都包括肤色,基本上你选择的一切都是用<代码> /\p{Enji}/Gu/<代码>表达式。我想用EMOJIS的SVGS替换它们。这个想法是找到一个表情,得到它的Unicode。(不是字符码)并用SVG替换。但是一个(长)unicode用多个UTF-16字符码编码,所以表情符号是各种UTF-16字符长的,所以我需要知道表情符号的“长”是多少。是的!谢谢你的回答!我重新考虑了这个洞,还看到了
string.match(regexp)
是一个选项,只需获取表情符号,然后在
forEach
中用
字符串替换它们。替换
。虽然您的解决方案简单得多,但我将单独执行,因为不幸的是,我必须考虑所有标识符(肤色、性别、连接器、变体选择器等)是的!谢谢你的回答!我重新考虑了洞的问题,还看到了
string.match(regexp)
是一个选项,只需获取表情符号,然后在
forEach
中用
字符串替换它们。替换
。虽然您的解决方案简单得多,但我将单独执行,因为不幸的是,我必须考虑所有标识符(肤色、性别、连接器、变体选择器等)。若要避免与字符串中的数字匹配,请改用
\p{Extended_Pictographic}
(from)。还有一个ZWJ表情符号序列的测试用例列表:。若要避免与字符串中的数字匹配,请改用
\p{Extended_Pictographic}
。还有一个ZWJ表情符号序列的测试用例列表:。