相关疑难解决方法(0)

从字符串中提取所有表情符号的正则表达式是什么?

我有一个用UTF-8编码的字符串.例如:

Thats a nice joke  
Run Code Online (Sandbox Code Playgroud)

我必须提取句子中的所有表情符号.表情符号可以是任何表情符号

当在终端使用命令查看此句子时,less text.txt它被视为:

Thats a nice joke <U+1F606><U+1F606><U+1F606> <U+1F61B>
Run Code Online (Sandbox Code Playgroud)

这是表情符号的相应UTF代码.emojis的所有代码都可以在emojitracker找到.

为了找到所有的出现,我使用了正则表达式模式,(<U\+\w+?>)但它不适用于UTF-8编码的字符串.

以下是我的代码:

    String s="Thats a nice joke  ";
    Pattern pattern = Pattern.compile("(<U\\+\\w+?>)");
    Matcher matcher = pattern.matcher(s);
    List<String> matchList = new ArrayList<String>();

    while (matcher.find()) {
        matchList.add(matcher.group());
    }

    for(int i=0;i<matchList.size();i++){
        System.out.println(matchList.get(i));

    }
Run Code Online (Sandbox Code Playgroud)

这个pdfRange: 1F300–1F5FF for Miscellaneous Symbols and Pictographs.所以我想捕捉这个范围内的任何角色.

java regex utf-8 emoji

43
推荐指数
10
解决办法
7万
查看次数

如何使用javascript检测表情符号

我需要有关如何检测输入是否包含日语表情符号/表情符号的帮助.目前我正在构建一个charset = utf-8的系统.在输入文本上,用户可以输入日文字符/ alpanumerics /符号,但如果他们插入表情符号,onsubmit javascript将检查是否有表情符号,将显示错误信息.真的不知道如何检测表情符号.

javascript emoji

25
推荐指数
9
解决办法
2万
查看次数

有没有办法检查JS中的字符串是否是一个表情符号?

问题很简单:我有一个字符串str,如何检查str一个表情符号,是否只有一个?另外,我宁愿不使用其他库。

比赛"""????""3??"但不"a"""""

我在寻找解决方案时遇到了麻烦,但是到目前为止,我已经尝试了一些方法:


尝试的解决方案1-玩弄长度和...运算符

我了解到,表情符号占据一个以上的字节,有些甚至占据4个字节,甚至更多……我们可以通过字符串的length属性来衡量:

console.log("".length); // 2
console.log("?".length); // 3
console.log("????".length); // 6
Run Code Online (Sandbox Code Playgroud)

然后我发现...运算符考虑了这一点,并正确分离了数组中的表情符号-然后,我可以查看结果数组的length属性并检测它们是否不同。

str = "????";
if (str.length !== [...str].length) {
  // is emoji?
} else {
  // is not emoji
}
Run Code Online (Sandbox Code Playgroud)

但是,这不会检查其他多字节字符,例如长度为2的字符。另外,有些表情符号仍然变得奇怪。


尝试解决方案2-正则表达式,正则表达式

当然,正则表达式是一个值得研究的问题,但是我还没有找到可行的解决方案。

这个答案的正则表达式\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]可以很好地检测字符串是否有表情符号,但是将其应用于我的情况会产生很多问题。这是我的测试:

A部分-没有字符串正则表达式(^$)的开始/结束

  • 2A.1 str.match(regex)非常不一致,它分解了一些表情符号和其他一些无法使用的表情符号。我没有找到一种方法来找出它是否甚至包含非表情符号字符或是否包含多个表情符号:
let regex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/;

console.log("5??".match(regex)); // [ …
Run Code Online (Sandbox Code Playgroud)

javascript regex unicode node.js emoji

18
推荐指数
1
解决办法
298
查看次数

标签 统计

emoji ×3

javascript ×2

regex ×2

java ×1

node.js ×1

unicode ×1

utf-8 ×1