gpt4 book ai didi

javascript - 在javascript中使用正则表达式检测表情符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:51 24 4
gpt4 key购买 nike

我正在创建一个类来检测表情符号,并具有以下检测 :) 表情符号,包括它们的各种变体(=]、=)、[=、[:、 等),但它不起作用,我无法终生找出问题所在。我正在 JSFiddle 中对其进行测试。

var DetectEmoticons = {
countHappy: function(data) {
var pattern = new RegExp("[:/=]-?[]/)] | [[/(]-?[:/=]", "g");
var count = (data.match(pattern) || []).length;
return count;
}
}
alert(DetectEmoticons.countHappy("=)"));

最佳答案

[:=;]-?[)(|\\/\]\[]|[)(|\\/\]\[]-?[:=;]

在您将其分解之前,这看起来像是来自 hell 的邪恶困惑:

[:=;] 匹配一个 : 或一个 = 或一个 ;

[)(|\\/\]\[] 匹配一个 ), (, |,\(反斜杠,因为它是元字符),/, ](反斜杠,因为它是元字符) 或 [(反斜杠,因为它是元字符)。(我们不需要反斜杠 ) 或 (,因为它们不是字符类中的元字符)。

中间的 | 表示“匹配我的左边或匹配我的右边”,然后我写相同的两个字符类,但相反以匹配方向相反的笑脸。

我认为您的正则表达式存在问题:

[]/)]

您忘记使用 \ 对第一个 ] 进行转义,因此它被视为过早结束字符类。

另一个问题是您认为正斜杠 / 是用来转义的。不是的,\是用来转义的,/在regex中没有特殊意义。

关于javascript - 在javascript中使用正则表达式检测表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954047/

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