作者satoshi3 (Ayanami Satoshi)
看板Ajax
標題[問題] Javascript驗證email
時間Thu Apr 5 02:32:30 2012
驗證email格式
同時含有'@'和'.'字元
'@'後必須有'.',且中間至少間隔一個字元
'@'不為第一個字元,'.'不為最後一個字元
'@'前至少3字元以上
須為'.com'結尾
語法是這樣
var EmailString=document.MyForm.MyEmail.value;
var strLength=EmailString.length;
var index1=EmailString.indexOf("@");
var index2=EmailString.indexOf(".",index1);
index3=EmailString.indexOf(".com",EmailString.length-4);
(其實index3這行我不確定究竟要不要var 因為剛試發現都跑得出來)
宣告變數後 再設定以下條件就可以完成
if(index1==-1 || index2==-1 || index2<=index1+1 || index1==0 ||
index2==strLength-1 || index1<3 || index3!=(EmailString.length-4))
我現在的問題在於 如果要將條件修改為
"驗證結尾必須是.tw或.com" 該怎麼寫比較好?
我頂多只知道如何只驗證為.com結尾 卻不知如何設定同時驗證是否為.com或.tw的條件
--
わたしを騙せるのなら 若要欺騙我
作り上げた「本当」を守ってみせて 就謹守你杜撰的「真實」
君を裁く劔なら 因為制裁你的劍
いつだってこの手に持っているから 我總是握在手裡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.182.25.85
※ 編輯: satoshi3 來自: 175.182.25.85 (04/05 02:33)
1F:推 LaPass:用正規表示式。然後上網去抓現成的表示式來用 04/05 09:14
2F:→ LaPass:index3那一行不打var會變成全域變數喔 04/05 09:15
3F:→ satoshi3:感謝樓上~我研究了一下也覺得正規表示比較好OTL 04/05 13:00
4F:→ satoshi3:不過如果是非得用我文中的寫法的話~該怎麼改比較好呢? 04/05 13:00
5F:→ satoshi3:還是會想知道XD 04/05 13:07
6F:推 LaPass:樓下那篇寫的蠻詳細的.... 04/05 14:11
7F:→ satoshi3:我知道~是正規表示法~是想問如果是按照我原先用的寫法 04/05 21:08
8F:→ satoshi3:因為會想多學點Q_Q總之還是謝謝囉>__<! 04/05 21:09