使用JavaScript从文本文件中提取电子邮件地址

时间:2015-10-16 09:22:06

标签: javascript

我有超过2000个电子邮件地址。我从feedburner出口。 电子邮件地址如下所示;

    adminvicky@gmail.com   Active  12/05/2015  03:07
   adminvishal250@gmail.com   Pending Verification 8/05/2015  01:07

我想通过删除有效,待审核,日期来从文本文件中提取电子邮件地址[即2015年8月5日]和时间[即03:07]使用JavaScript。

我创建了一个类似下面的JavaScript程序,它可以正常地删除Active,Pending验证文本,

<script>
  function extracter() {

    var a = document.getElementById('input').value;

    document.getElementById('output').innerHTML =

    a.replace(/Active|Pending|Verification| /g, '');

  }
</script>

<textarea id="input"></textarea><br/>
<br/>

<input type="button" value="click" onclick="extracter()"/>
<br/>
<br/>
<textarea id="output"></textarea>

输出是,

 adminvicky@gmail.com  12/05/2015  03:07
   adminvishal250@gmail.com  8/05/2015  01:07

我想要以下输出。只是帮我删除&#34; 日期&#34;和&#34; 时间&#34;,

     adminvicky@gmail.com 
   adminvishal250@gmail.com

7 个答案:

答案 0 :(得分:2)

尝试这个,我认为它会完成这项工作

var a = document.getElementById('input').value;

document.getElementById('output').innerHTML = extractEmails(a).join('\n');

功能:

function extractEmails (text)
{
    return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
}

这是fiddle

这也是使用jQuery Extract all email addresses from bulk text using jquery

的一个例子

答案 1 :(得分:1)

我会使用string.split(" ")并将文本文件拆分为空格。

示例:

var string = "    adminvicky@gmail.com   Active  12/05/2015  03:07   adminvishal250@gmail.com   Pending Verification 8/05/2015  01:07"
var array = string.split(" ");
var emails = [];
for(var i = 0; i < array.length; i++){
    if(array[i].indexOf("@") != -1){
       emails.push(array[i]);
    }
};

然后你有一个包含你的电子邮件地址的阵列电子邮件。

答案 2 :(得分:1)

尝试使用此正则表达式:

([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)

<强> REGEX DEMO

在您的Javascript中,您可以像这样实现它:

function getMail ( text ){
    return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
    }

<强> JSFIDDLE DEMO

答案 3 :(得分:1)

您可以轻松编写正则表达式并迭代结果,如:

var reg = new RegExp(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g);   
var email;
while((email = reg.exec(targetText)) !== null) {
    // do something with the email
}

答案 4 :(得分:1)

让我们试试这个简单的正则表达式:

&#13;
&#13;
json_encode
&#13;
&#13;
&#13;

答案 5 :(得分:1)

您可以尝试使用此正则表达式:

a.replace(/\s+.+$/g, '')

这适用于您的情况。

答案 6 :(得分:0)

使用JQuery加载功能从.txt文件读取内容并将电子邮件显示为超链接:

$(document).ready(function(){
        //Get the text content from txt file using load function
            $( "#divid" ).load( "/xyz.txt",function(response, status, xhr){
                if(status=='success') {
                     /* After loading the static text, modifying the email address to hyper link */
                      var corrected = response;
                      var emailRegex =/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/g;
                      corrected.match(emailRegex).forEach(function(email) {
                      console.log(email);
                      corrected = corrected.replace ( email, '<a href="mailto:' + email + '">' + email + '</a>' );
                    });

                    $('#divid').html(corrected);
                }

                });
        });