NodeJs检查用户输入是表情符号还是字符串和表情符号的集合

时间:2018-03-26 09:55:57

标签: javascript node.js regex emoji

我正在研究NodeJs项目。用户给我一个输入文本并从req.body.info访问它。 我必须检查两个案例并按照它开展工作:

  1. 用户输入表情符号 我在这种情况下使用正则表达式并且工作正常。我传递字符串来检查函数,代码就像
  2. let is emoji = function(str){
        console.log(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/.test(str));
    }
    

    它验证了几乎所有的emaojis。

    1. 用户输入字符串(有或没有表情符号) 如果用户输入只是一个字符串(比如hello,1,0,abc等),则上述函数会按预期返回false。但在我的情况下,这个字符串可以包含表情符号,在这种情况下,我想使它匹配为false。那就是我想要一个解决方案来检查一个字符串是否是纯粹的表情符号(即它应该在所有情况下评估为true,如输入字符串是或,甚至......)。如果它包含一些文本(我很高兴),在这种情况下解决方案不应该与true匹配。
    2. 我只能找到检查是否存在表情符号的解决方案,从输入中列出表情符号,用其他东西替换表情符号等等。这不是我的情况。

      希望有人可以提供帮助。

0 个答案:

没有答案