2015-12-21 157 views
3

即時通訊新的貓鼬...我有一個代碼片段下面。如果我想在保存之前查看電子郵件中@符號後面的內容,我將如何進行驗證?如何驗證電子郵件貓鼬

var user = new User ({ 
    firstName: String, 
    lastName: String, 
    email: String, 
    regDate: [Date] 
}); 

user.save(function (err) { 
    if (err) return handleError(err); 
}) 

回答

4

您可以使用正則表達式。看看這個問題:在JS中驗證電子郵件地址?

你可以試試這個

user.path('email').validate(function (email) { 
    var emailRegex = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
    return emailRegex.test(email.text); // Assuming email has a text attribute 
}, 'The e-mail field cannot be empty.') 

來源:Mongoose - validate email syntax

+0

林不知道我理解這一點最簡單的方法。我需要一個if語句嗎?因此,例如,如果電子郵件以「@ google.com」結尾,則它將以管理員身份保存,如果電子郵件只是有效的「[email protected]」,則在該情況下將保存爲用戶 –

+1

,在驗證 1.驗證電子郵件有效後 2.分支一個if-else,一個用於檢查其他用於插入平均joe的管理員郵件結尾。 :) – CodePhobia

1

好,看看有什麼@後使用substringindexOf

var someEmailMaybe = "[email protected]"; 

var atSign = someEmailMaybe.indexOf('@'); 

if(atSign !== -1){ 
    throw new Error('not an email'); 
} 

var afterEmail = someEmailMaybe.substring(atSign);