Javascript 如何在不使用正则表达式的情况下检查输入是否为表情符号?

Javascript 如何在不使用正则表达式的情况下检查输入是否为表情符号?,javascript,java,dom,Javascript,Java,Dom,我是web开发新手,只是想检查用户输入是否包含emojis,但出于性能原因,没有使用regex。 有没有办法在前端使用JavaScript或在后端使用java来实现这一点?java没有识别表情符号 根据of的说法,这位官员没有识别表情符号 我想这就是为什么我们在Java13类上看不到任何类型的isEmoji方法的原因 滚你自己的 根据附录A,有描述表情符号方面的数据文件可用。如果你有足够的动机来可靠地识别表情字符,我建议阅读该技术说明,并考虑从这些文件中导入数据来识别表情符号。Unicode联盟

我是web开发新手,只是想检查用户输入是否包含emojis,但出于性能原因,没有使用regex。 有没有办法在前端使用JavaScript或在后端使用java来实现这一点?

java没有识别表情符号 根据of的说法,这位官员没有识别表情符号

我想这就是为什么我们在Java13类上看不到任何类型的
isEmoji
方法的原因

滚你自己的 根据附录A,有描述表情符号方面的数据文件可用。如果你有足够的动机来可靠地识别表情字符,我建议阅读该技术说明,并考虑从这些文件中导入数据来识别表情符号。Unicode联盟可能会使用一定范围的数字对表情符号进行聚类

请记住,Unicode联盟近年来经常添加越来越多的表情符号。所以你将追逐一个移动的目标,需要更新

您可以使用中定义的代码点命名范围缩小范围

我猜这可能会有所帮助,因为根据方便的macOS应用程序,我所阅读的表情符号被标记得太多了

仅供参考,Unicode联盟确实发布了表情符号列表:


顺便说一句,Unicode联盟发布并在Java最新版本中默认使用的定义了如何对表情符号进行排序。是的,人类的脸先于猫的脸,等等。表情符号的代码点是任意分配的,所以排序时不要使用它

与其尝试将表情符号列入黑名单,不如将您希望允许的字符列入白名单。如果你的站点是多语言的,你必须添加你想要支持的语言的字符。对输入的每个字符进行循环并查看其是否在有效字符列表中应该相对简单


您需要在前端和后端都进行验证。你想做前端,这样你就可以立即向用户显示反馈,你还必须在后端进行验证,这样人们就不能通过打开浏览器的控制台或发挥创意来玩你的系统了。一般来说,服务器不应信任前端内容。

谢谢您的建议。我想做的是实际读取表情符号,并可能将它们保存到数据库中。但是我不知道这是不是可能啊,那样的话,白名单对你不起作用。但这似乎是一件很奇怪的事情。比如,对于用户尝试使用的表情符号数据库,你有什么可能的用途呢?我只是在想,我是否可以在数据库中存储一个key=value对,其中“key”是一个表情符号。任何事情都是可能的,我只是好奇你为什么要这样做。