title: NodeJs Check for user input is emoji or collection of strings and emoji(s)
body: <p>I am working on a NodeJs project. The user gives me an input text and accessing it from req.body.info.
  I have to check two cases and work according to it:</p>
  
  <ol>
  <li>user inputs an emoji
  I use a regex in this case and works fine. I pass the string to check to a function and the code is like</li>
  </ol>
  
  
  
  <pre><code>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));
  }
  </code></pre>
  
  <p>It validates almost all emaojis.</p>
  
  <ol start="2">
  <li>User inputs a string (with or without emojis)
  If the user input is just a string (say hello, 1, 0, abc etc.) the function above returns false as expected. But in my case This string can contain emojis, and in that case I want to make it matches to false. That is I want a solution to check whether an string is purely emoji(s) (i.e it should evaluate to true in all cases like input string is  or , or even ...). If it contains some text like (I am happy ) in this case the solution should not match to true.</li>
  </ol>
  
  <p>I could only found the solutions to check whether an emoji is present, list out emojis from an input, replace emojis with something else etc.That's not my case.</p>
  
  <p>Hope some one can help. </p>