Extract all email addresses from bulk text using jquery

前端 未结 7 1489
北海茫月
北海茫月 2020-11-28 06:09

I\'m having the this text below:

sdabhikagathara@rediffmail.com, \"assdsdf\" , \"rodnsdfald ferdfnson\" 

        
相关标签:
7条回答
  • 2020-11-28 06:35
    function GetEmailsFromString(input) {
      var ret = [];
      var email = /\"([^\"]+)\"\s+\<([^\>]+)\>/g
    
      var match;
      while (match = email.exec(input))
        ret.push({'name':match[1], 'email':match[2]})
    
      return ret;
    }
    
    var str = '"Name one" <foo@domain.com>, ..., "And so on" <andsoon@gmx.net>'
    var emails = GetEmailsFromString(str)
    

    Source

    0 讨论(0)
  • 2020-11-28 06:36

    You don't need jQuery for that; JavaScript itself supports regexes built-in.

    Have a look at Regular Expression for more info on using regex with JavaScript.

    Other than that, I think you'll find the exact answer to your question somewhere else on Stack Overflow - How to find out emails and names out of a string in javascript

    0 讨论(0)
  • 2020-11-28 06:39

    Here's how you can approach this:

    HTML

    <p id="emails"></p>
    

    JavaScript

    var text = 'sdabhikagathara@rediffmail.com, "assdsdf" <dsfassdfhsdfarkal@gmail.com>, "rodnsdfald ferdfnson" <rfernsdfson@gmal.com>, "Affdmdol Gondfgale" <gyfanamosl@gmail.com>, "truform techno" <pidfpinfg@truformdftechnoproducts.com>, "NiTsdfeSh ThIdfsKaRe" <nthfsskare@ysahoo.in>, "akasdfsh kasdfstla" <akashkatsdfsa@yahsdfsfoo.in>, "Bisdsdfamal Prakaasdsh" <bimsdaalprakash@live.com>,; "milisdfsfnd ansdfasdfnsftwar" <dfdmilifsd.ensfdfcogndfdfatia@gmail.com>';    
    
    function extractEmails (text)
    {
        return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
    }
         
    $("#emails").text(extractEmails(text).join('\n'));
    

    Result

    sdabhikagathara@rediffmail.com dsfassdfhsdfarkal@gmail.com rfernsdfson@gmal.com gyfanamosl@gmail.com pidfpinfg@truformdftechnoproducts.com nthfsskare@ysahoo.in akashkatsdfsa@yahsdfsfoo.in bimsdaalprakash@live.com dfdmilifsd.ensfdfcogndfdfatia@gmail.com
    

    Source: Extract email from bulk text (with Regular Expressions, JavaScript & jQuery)

    Demo 1 Here

    Demo 2 Here using jQuery's each iterator function

    0 讨论(0)
  • 2020-11-28 06:52

    The bellow function is RFC2822 compliant according to Regexr.com

    ES5 :

    var extract = function(value) {
       var reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/g;
       return value && value.match(reg);
    }
    

    ES6 :

    const reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/g
    const extract = value => value && value.match(reg)
    

    Regexr community source

    0 讨论(0)
  • 2020-11-28 06:52
     const = regex = /\S+[a-z0-9]@[a-z0-9\.]+/img
    "hello sean@example.com how are you? do you know bob@example.com?".match(regex)
    
    0 讨论(0)
  • 2020-11-28 06:56

    Just an update to the accepted answer. This does not work for "plus" signs in the email address. GMAIL supports emailaddress+randomtext@gmail.com.

    I've updated to:

    return text.match(/([a-zA-Z0-9._+-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
    
    0 讨论(0)
提交回复
热议问题