簡體   English   中英

電子郵件地址檢查Javascript

[英]Email address check in Javascript

我想很多人之前做過類似的開發任務:

我想查看人們的電子郵件地址是否只匹配@ tomtom.com或@ stream.com。

目前,我腦子里有兩個解決方案:

  1. 使用indexof()函數

     var checkTomTomEmail=eo.data.username.indexOf("@tomtom.com"); var checkStreamEmail=eo.data.username.indexOf("@stream.com"); if (checkTomTomEmail >0 || checkStreamEmail >0 ) { //Run the login code } Else { //Please login with your tomtom or stream email } 
  2. 使用匹配

     var patt1=/@tomtom.com/gi; var patt2=/@stream.com/gi; var checkTomTomEmail=eo.data.username.match(patt1); var checkStreamEmail=eo.data.username.match(patt2); if(indexOf(checkTomTomEmail)> 1 ||indexOf (checkStreamEmail)>1) { //Login } 

我仍然認為我還沒有考慮所有的細節。 有什么建議?
謝謝

也許如果只允許人們為這兩個地址輸入電子郵件,您應該只收集用戶名,然后允許他們使用radiobuttons選擇@ tomtom.com或@stream.com。

如果您仍想使用javascript路由,那么您的正則表達式可以合並為一個語句

var emailPatt=/@(tomtom|stream).com/gi;

if(emailPatt.test(eo.data.username))
{
    //Login 
}

這個怎么樣...

var emailRegex = /^([0-9a-z])+@(tomtom|stream)\.com$/ig;
if (emailRegex.test(emailRegex)) {
    // Login
}

而不是執行.match(...) - 你將獲得一個字符串,我們可以執行.test(...)來查看是否匹配。

此模式保證以下內容:

  1. 電子郵件地址的“用戶名”部分必須至少具有單個字符(例如,a @ stream.com)
  2. 用戶名必須由數字或字母組成(大/小寫 - 由於末尾的/ i無關緊要)
  3. 輸入必須包含整個電子郵件地址,而不包含前導或尾隨空格。 例如,“user@tomtom.com”將失敗,它只接受“user@tomtom.com”。)

您可以進一步自定義,確保用戶名必須至少包含3個字符,您可以在電子郵件地址中使用下划線或短划線等。

要回答您的問題,兩種解決方案都無法解決。 原因:

  1. 用戶可以輸入“tom@tomtom.com Hello”,它將通過您的兩次驗證。
  2. 特別是在解決方案#2上,點'。' 是一個正則表達式保留字符,它意味着它將匹配任何東西,因此,如果用戶輸入“@ tomtom1com”,它將通過...

有關正則表達式的更多信息: http//www.regular-expressions.info/reference.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM