2015-10-16 81 views
3

我有超過2000個電子郵件地址。我已從feedburner中導出。 電子郵件地址如下所示;使用JavaScript從文本文件中提取電子郵件地址

[email protected] Active 12/05/2015 03:07 
    [email protected] Pending Verification 8/05/2015 01:07 

我想從文本文件中提取電子郵件地址,通過刪除活動,待定驗證,日期[即8/05/2015]和使用JavaScript的時間[即03:07]。

我創建了一個JavaScript的計劃,該計劃類似,低於該刪除活動,待驗證文本正常工作,

<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> 

和輸出是,

[email protected] 12/05/2015 03:07 
    [email protected] 8/05/2015 01:07 

而且我想下面的輸出。只是幫我刪除「日期」和「時間」,

 [email protected] 
    [email protected] 

回答

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._-][email protected][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 = " [email protected] Active 12/05/2015 03:07 [email protected] 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]); 
    } 
}; 

然後你有一個包含電子郵件不會忽略一個數組電子郵件。

1

你可以隨便寫一個正則表達式和遍歷結果類似:

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

讓我們試試這個簡單的正則表達式:

var record = ' [email protected] Active 12/05/2015 03:07'; 
 
var regExp = /^\s*(.*?)\s+/; 
 
console.log(record.match(regExp)[1]);

1

你可以試試這個正則表達式,而不是一個例子:

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

這應該爲你的情況工作。

相關問題