2016-08-23 71 views
0

我有一個字符串中的文本。我寫了一個函數,從這個字符串中提取電子郵件,但我想刪除具有特定tld的電子郵件。提取電子郵件地址,但刪除一些tld

例如,刪除所有的電子郵件與TLD名爲.xyz

這是函數。事實上,我認爲不區分大小寫的整合是行得通的。請幫忙嗎?

function extraction(string) { 
    var emails= string.match(/\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}\b/ig);  
    if (/(xyz|us|porn/i)$/.test(emails)){ 
     return false; 
    } else { 
     return emails; 
    } 
} 
+0

你能不能給我們輸入字符串的個例?但不是以word格式 –

+0

爲您的問題添加'regex'標籤,以便更多人可以看到它。 – yuriy636

回答

1

您可以納入這一邏輯與負前瞻你的第一個正則表達式:

\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.(?!xyz\b|abc\b|xxx\b)[A-Z]{2,6}\b 

插入的部分((?!xyz\b|abc\b|xxx\b))將確保這3個擴展(xyzabcxxx)是排除。

不需要第二個正則表達式。違規者將被排除在外。

對於不區分大小寫,你需要在正則表達式的最後不能半途而廢提供i修改,:

/........./i 
0

首先,如果你想限制有些話你應該做之前驗證你把你的正則表達式。 http://regexr.com/

其次,這則表達式的一部分是錯誤的/(XYZ |簡介|色情/ I)$ /你把一個轉義正斜槓什麼手段都沒動過,這是在正則表達式我一個錯誤我不是一個正規表達專家我做了這個,併爲這些詞,你試圖驗證 這是我的結果/ xyz |我們|色情/ ig我把/ ig什麼意思任何字大寫或小寫將被搜索以及全球允許進行互動式搜索的詞彙。

我正在學習英語,如果你不明白問我對我的文字的懷疑,我會回答你的。

function extraction(string) { 
 
    var emails= string.match(/\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}\b/ig);  
 
    if (/xyz|us|porn/ig.test(emails)){ 
 
     return false; 
 
    } else { 
 
     return emails; 
 
    } 
 
} 
 

 
document.write(extraction('[email protected]')); 
 
document.write('<br/>'); 
 
document.write(extraction('[email protected]')); 
 
document.write('<br/>'); 
 
document.write(extraction('[email protected]'));