首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找带有冒号和肤色的表情符号名称

查找带有冒号和肤色的表情符号名称
EN

Stack Overflow用户
提问于 2018-07-13 12:29:52
回答 1查看 638关注 0票数 3

我使用EmojiMart作为解析器。

我见过这个相关问题,但它似乎和我的不一样。

因此,我需要返回表情符号名称或:code:,以使他们能够解码它。

举个例子,我有这篇文章:

代码语言:javascript
复制
:+1::skin-tone-6::man-pouting:Hello world:skin-tone- 
6:lalalalla:person_with_pouting_face: :poop::skin-tone-11: mamamia 
:smile: :skin-tone-6:

它应该匹配整个:+1::skin-tone-6:,而不是单独的:+1::skin-tone-6:: --只有在它们之间没有空格的情况下。(注意:smile::skin-tone-6:之间的空格)

条件:

只有当肤色为2-6时,它才能与:code::skintone:相匹配。

如果我做了str.split(regex),这就是我的预期结果(数组):

代码语言:javascript
复制
- :+1::skin-tone-6:
- :man-pouting:
- Hello world
- :skin-tone-6:
- lalalalla
- :person_with_pouting_face: 
- :poop:
- :skin-tone-11: 
-  mamamia 
- :smile: 
- :skin-tone-6:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-13 12:39:38

您可以将String#split()

代码语言:javascript
复制
/(:[^\s:]+(?:::skin-tone-[2-6])?:)/

regex。见regex演示

详细信息

  • : -一个冒号
  • [^\s:]+ - 1+字符,而不是空格和:
  • (?:::skin-tone-[2-6])? -一个可选的序列
    • ::skin-tone- -一个文字子字符串
    • [2-6] -从26的数字

  • : -一个冒号.

JS演示:

代码语言:javascript
复制
var s = ":+1::skin-tone-6::man-pouting:Hello world:skin-tone-6:lalalalla:person_with_pouting_face: :poop::skin-tone-11: mamamia :smile: :skin-tone-6:";
var reg = /(:[^\s:]+(?:::skin-tone-[2-6])?:)/;
console.log(s.split(reg).filter(x => x.trim().length !=0 ));

.filter(x => x.trim().length !=0 )从结果数组中删除所有空白项。对于ES5和更高版本,请使用.filter(function(x) { return x.trim().length != 0; })

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51325143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档