gpt4 book ai didi

javascript - 有些表情符号与我的仅表情符号正则表达式不匹配

转载 作者:行者123 更新时间:2023-11-30 13:56:11 24 4
gpt4 key购买 nike

我正在建立一个聊天室,当它只包含表情符号时,我想增加文本的字体大小

所以,我们有了这个匹配所有表情符号的正则表达式。 https://www.regextester.com/106421

我在 JS 函数中移动了它,但有些函数在我的函数中没有返回 true(即使它们在上面的 Regex 链接中匹配)。

var emojiRanges = [
'\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]',
' ',
].join('|')


function isEmojiOnly(text) {
text = text.replace(new RegExp(emojiRanges, 'g'), '')
return text.length === 0
}


console.log(isEmojiOnly('💐🌹🥀🌷🌺🌸')) // returns true
console.log(isEmojiOnly('💐🌹🥀🌷🌺🌸🌾🍁🍂🍀🍃🌱💮')) // returns true
console.log(isEmojiOnly('🏵️')) // returns false
console.log(isEmojiOnly('☘️')) // returns false

它在 Facebook Messenger 上运行良好

enter image description here

有什么想法吗? =)

最佳答案

接受的答案有效但非常脏。

主流浏览器现在支持unicode property escape这允许根据它们属于 Emoji unicode 类别来匹配表情符号:\p{Emoji} 匹配表情符号,P{Emoji} 匹配一个非表情符号。确保包含 the u flag在最后。

const isOnlyEmojis = str => /^\p{Emoji}*$/gu.test(str);

console.log(isOnlyEmojis('🌼')); // true
console.log(isOnlyEmojis('🌼🌺🌸')); // true
console.log(isOnlyEmojis('hello 🌼')); // false
console.log(isOnlyEmojis('hello')); // false

关于javascript - 有些表情符号与我的仅表情符号正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57261413/

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