1 BOOL IsValidEmail( const CString& email ) 2 { 3 int pos = 0; 4 int countAt = 0; 5 int posAt = 0; 6 int posPoint = 0; 7 for(;pos<email.GetLength();pos++){ 8 if(::isspace(email[pos])){ 9 return FALSE; 10 } 11 if(_T('@') == email[pos]){ 12 countAt++; 13 posAt = pos; 14 } 15 if(_T('.') == email[pos]){ 16 posPoint = pos; 17 } 18 } 19 if(countAt != 1 || posAt == 0){ 20 return FALSE; 21 } 22 if(posPoint-posAt<0 || email.GetLength()-1==posPoint){ 23 return FALSE; 24 } 25 26 return true; 27 }
上面方法不是很严谨,但已经可以应付大多数情况。
正则表达式验证EMail:
1 /^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/