當前位置:首頁 » 編程語言 » java郵箱驗證

java郵箱驗證

發布時間: 2023-05-31 09:54:37

java 驗證郵箱格式怎麼實現

public class Test{
public static void main(String[] args){
Test t = new Test();
String email = "[email protected]" ;
boolean isEmail = t.isEmail(email);
if(isEmail){
System.out.println(email +" is a right email!!!");
}else{
System.out.println("error");
}
}
public boolean isEmail(String email){
//正則表達式
/*
String regex = "^[A-Za-z]{1,40}@[A-Za-z0-9]{1,40}\\.[A-Za-z]{2,3}$";
return email.matches(regex);
*/

//不適用正則
if(email==null||"".equals(email)) return false ;
if(!containsOneWord('@',email)||!containsOneWord('.',email)) return false;
String prefix = email.substring(0,email.indexOf("@"));
String middle = email.substring(email.indexOf("@")+1,email.indexOf("."));
String subfix = email.substring(email.indexOf(".")+1);
System.out.println("prefix="+prefix +" middle="+middle+" subfix="+subfix);

if(prefix==null||prefix.length()>40||prefix.length()==0) return false ;
if(!isAllWords(prefix)) return false ;
if(middle==null||middle.length()>40||middle.length()==0) return false ;
if(!isAllWordsAndNo(middle)) return false ;
if(subfix==null||subfix.length()>3||subfix.length()<2) return false ;
if(!isAllWords(subfix)) return false ;
return true ;
}
//判斷字元串只包含指定的一個字元c
private boolean containsOneWord(char c , String word){
char[] array = word.toCharArray();
int count = 0 ;
for(Character ch : array){
if(c == ch) {
count++;
}
}
return count==1 ;
}
//檢查一個字元串是否全部是字母
private boolean isAllWords(String prefix){
char[] array = prefix.toCharArray();
for(Character ch : array){
if(ch<'A' || ch>'z' || (ch<'a' && ch>'Z')) return false ;
}
return true;
}
//檢查一個字元串是否包含字母和數字
private boolean isAllWordsAndNo(String middle){
char[] array = middle.toCharArray();
for(Character ch : array){
if(ch<'0' || ch > 'z') return false ;
else if(ch >'9' && ch <'A') return false ;
else if(ch >'Z' && ch <'a') return false ;
}
return true ;
}
}

㈡ java里怎麼發驗證碼到郵箱,然後登陸郵箱獲取驗證碼請高手指點,盡量具體些。。。

郵箱驗證分幾種,
最簡單的是直接發送驗證碼:驗證碼隨機產生,可以放到cookie里,限制有效時間就是cookie的存活時間。產生之後和發送郵件一樣直接發送到郵箱。當用戶驗證的時候直接從cookie里拿到驗證碼進行比較。
還有一種是驗證鏈接。在鏈接里要放一個驗證參數,這個參數包括用戶名或用戶id,創建時間,驗證碼。當然都要用某種方法去加密,當用戶點擊這個鏈接的時候,根據相應的方法解密獲得參數。這個可以放到一張動態表裡,表中有驗證碼和對應的用戶名或id。當用戶要求驗證的時候從資料庫中拿到驗證碼,根據鏈接中的時間判斷是否過期。驗證成功後刪除本條數據即可。如果鏈接只能使用一次,那麼在根據用戶名拿到數據之後不管驗證是否成功都要刪除數據

㈢ java 驗證郵箱是否存在

一般的驗證是 驗證郵件地址格式是否正確,如果你需要驗證郵箱是否存在就需要發個郵件過去,即使發過去 你也不知道是否存在,除非有郵件返回。
所以一般只是驗證郵件格式是否正確就可以了。

㈣ java 帶要求的驗證郵箱的正則表達式

//一般用於帳號(Email)

validator.entity.setRuleEmail("^(\\w|\\.|-|\\+)+@(\\w|-)+(\\.(\\w|-)+)+$");

貼上完整的郵箱驗證代碼:

/**
* 驗證email規則
*
* @param email
* @return
*/
publicbooleanvalidateEmail(String email)
{
return TextUtils.isEmpty(email)? false
:email.matches(entity.ruleEmail);
}

㈤ 如何用java檢驗電子郵箱格式的合法性要用到String的方法來判斷

自己寫邏輯驗證的方式可以做到。我寫了下面的:

public static boolean validateEmail(String email) {
boolean flag = false;
int pos = email.indexOf("@");
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
String[] strings = email.split("@");
if (strings.length != 2) {// 如果郵箱不是xxx@xxx格式
return false;
}
CharSequence cs = strings[0];
for (int i = 0; i < cs.length(); i++) {
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
pos = strings[1].indexOf(".");// 如果@後面沒有.,則是錯誤的郵箱。
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
strings = strings[1].split(".");
for (int j = 0; j < strings.length; j++) {
cs = strings[j];
if (cs.length() == 0) {
return false;
}
for (int i = 0; i < cs.length(); i++) {//如果保護不規則的字元,表示錯誤
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}

}
return true;
}

這個效率也不會差很多,不過我推薦matches方法,經過測試的,matches匹配方式運行10000次的時間比上面的時間少了20毫秒。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:942
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371