2010-09-17 156 views
6

如何在Java中驗證字符串?即只允許字符而不是數字?電子郵件驗證如何?如何在Java中驗證字符串?

+4

你可能會看看正則表達式:http://download.oracle.com/javase/tutorial/essential/regex/ – MatrixFrog 2010-09-17 05:20:50

回答

5

字符串只有字符嘗試

private boolean verifyLastName(String lname) 
{ 
    lname = lname.trim(); 

    if(lname == null || lname.equals("")) 
     return false; 

    if(!lname.matches("[a-zA-Z]*")) 
     return false; 

    return true; 
} 

的電子郵件驗證嘗試

private boolean verifyEmail(String email) 
{ 
    email = email.trim(); 

    if(email == null || email.equals("")) 
     return false; 

    if(!email.matches("^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")) 
     return false; 

    return true; 
} 
+1

檢查一個空字符串或修剪它真的沒有意義,因爲你可以照顧那些正則表達式。 – NullUserException 2010-09-17 05:41:18

+0

我同意NUE – jsshah 2010-09-17 05:57:43

+0

'trim'應該在空檢查之後完成......否則你會拋出NullPointerException ... – st0le 2010-09-17 08:08:53

7

如何字符串可以用Java驗證?

一個常見的方法是使用正則表達式或正則表達式。在Java中,您可以使用String.matches(String regex)方法。用正則表達式我們說你匹配模式的字符串如果匹配成功,.matches()返回true。


只允許而不是字符數?

// You can use this pattern: 
String regex = "^[a-zA-Z]+$"; 
if (str.matches(regex)) { 
    // ... 
} 

電子郵件驗證?

電子郵件地址有一個very complicated spec,這需要一個怪異的正則表達式纔是準確的。這一個是體面的,短暫的,但不完全正確:

String regex = "\\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\\.[A-Z]{2,4}\\b"; 
if (str.matches(regex)) { 
    // ... 
} 

如果你真的想看看它:How to validate emailComparing email validating regexes(PHP)。


這裏是一個很好的資源獲取有關正則表達式的開始:
http://www.regular-expressions.info

4

對於簡單的情況下,像那個,去與正則表達式爲NullUserException已經建議。如果您需要更強大的解決方案,您可以使用一些驗證框架,即Apache Commons Validator