为什么没有在正则表达式中选择 unicode 数字

Why are the unicode numbers not being selected in regex

我正在创建一个 discord 命令来创建一个民意调查,但无论出于何种原因,表情符号 1️⃣ 不会出现。

我的代码

const EMOJIREGEX = /((?<!\)<:[^:]+:(\d+)>)|\p{Emoji_Presentation}|\p{Extended_Pictographic}/gmu;



  let element='1️⃣some text➡️'
        if (element.match(EMOJIREGEX)) {
          let emojis = element.match(EMOJIREGEX)
          console.log(emojis)
        
        } else {
        console.log('no emojis')
         
        }

输出

[ '➡' ]

我试过其他几种表情符号,只有 0-9 的表情符号不起作用(这很不幸,因为它们很可能是最重要的)

任何帮助都会很棒,谢谢!

使用Emoji代替Emoji_Presentation

const EMOJIREGEX = /((?<!\)<:[^:]+:(\d+)>)|\p{Emoji}|\p{Extended_Pictographic}/gmu;

let element='1️⃣some text➡️'
let emojis = element.match(EMOJIREGEX);
if (emojis) {
  console.log(emojis)

} else {
console.log('no emojis')

}

可以使用的别名列表: https://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt