2016-07-07 69 views
1

我目前工作的一個項目,我不得不產生對JavaScript中的一些動態的電子郵件地址,基於與各種人物的一些廣義字符串。創建有效的電子郵件地址字符串(只剩需要@sign的)

說我有一對夫婦的組名稱:

var groupname1: "This is my first group"; 
var groupname2: "[email protected]@!#¤%&/()  group"; 

我需要弄清楚從名字剝離哪些字符,這樣我就可以讓他們通過電子郵件發送,有效

function removeWeirdCharsAndReturnEmailAddress(name){ 
    var emailValidString = [DO REGEX/OTHER MAGIC HERE]; 
    return emailValidString + '@domain.org'; 
} 
+0

https://en.wikipedia.org/wiki/Email_address#Syntax –

+0

要麼使用一個字符類像'[A-Z0-9 /&%$§」 !]'或'\ w'或'\ S'加一個量詞:'\ S +','\ w +'等。 – Jan

+0

/^ [ - a-z0-9〜!$%^&* _ = +} {\'?] +(\。[ - a-z0-9〜!$%^&* _ = +} {\'?] +)*'' –

回答

1

試試這個。它會根據你的問題考慮'@'左側的內容,並去掉非電子郵件正文字符。我用過的正則表達式並不完美。你可以把它調整到您的要求:

function removeWeirdCharsAndReturnEmailAddress(name){ 
    var indexOfAt = name.indexOf("@"); 
    var s = ''; 
    if (indexOfAt > -1) 
     s = str.substring(0, indexOfAt); 
    else 
     s='do something in case no @ in string'; 

    var acceptedString = ''; 
    for (var i = 0, len = s.length; i < len; i++) { 
     if (isValidEmailCharacter(s[i])) acceptedString += s[i]; 
    } 

     return acceptedString + '@domain.org'; 
    } 

    function isValidEmailCharacter(s){ 
    var re = /[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]/; 
    return re.test(s); 
    } 
+0

對'isValidEmailCharacter()'中的正則表達式來自何處有一些參考。但是我非常肯定像' - |。@ domain.org'這樣的地址是無效的。 –

+0

我想出了reg exp ...它只是簡單地接受單個字符,其中包含a到z A到Z的數字,還有一些允許使用特殊字符。如前所述,它需要一些工作。 Domain.Org是OP在他的問題中使用的,顯然只是爲了演示 – Ash

0

你可以使用生成器庫創建有效的電子郵件。

檢查Chance.js

代碼很簡單:

chance.email({domain: 'example.com'}) 
=> '[email protected]' 
+0

這個庫沒有按似乎沒有做OP的要求(去掉或音譯給定的字符串,並將其用於本地部分) –

+0

你說的對,但他說他在一個項目上工作以生成e郵件。這個圖書館可以幫助他完成這項工作。 – Ygalbel

相關問題