2010-09-17 12 views

Trả lời

5

cho chuỗi với các nhân vật chỉ thử

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; 
} 

để xác nhận email thử

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

Thực sự không có điểm nào trong việc kiểm tra chuỗi trống hoặc cắt xén vì bạn có thể chăm sóc những người có regex. – NullUserException

+0

Tôi đồng ý với NUE – jsshah

+0

các 'trim' nên được thực hiện SAU kiểm tra null ... hoặc người nào khác bạn sẽ ném NullPointerException ... – st0le

7

làm thế nào một chuỗi có thể được xác nhận trong java?

Cách thông thường để thực hiện điều đó là sử dụng regex hoặc Cụm từ thông dụng. Trong Java, bạn có thể sử dụng phương thức String.matches(String regex). Với regexes, chúng tôi cho rằng bạn khớp một chuỗi với mẫu Nếu kết quả khớp thành công, .matches() sẽ trả về giá trị đúng.


chỉ các ký tự được phép và không phải là số?

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

email xác nhận?

Địa chỉ email có số very complicated spec, yêu cầu regex quái dị phải chính xác. Đây là một phong nha và ngắn, nhưng không chính xác đúng:

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

Nếu bạn thực sự muốn nhìn vào nó: How to validate emailComparing email validating regexes (PHP).


Dưới đây là một nguồn tài nguyên tuyệt vời để bắt đầu trên regex:
http://www.regular-expressions.info

4

Đối với trường hợp đơn giản như vậy, đi với RegExp như NullUserException đã đề xuất. Nếu bạn cần giải pháp mạnh mẽ hơn, bạn có thể sử dụng một số khung xác thực, tức là Apache Commons Validator.

1

Nếu bạn có Apache commons-lang làm phụ thuộc dự án (và điều đó là khá bình thường), bạn có thể sử dụng StringUtils.isAlpha(). Nếu bạn có xác thực cụ thể hơn hoặc không muốn phụ thuộc vào commons-lang, bạn có thể thực hiện điều đó với cụm từ thông dụng và String.matches().

Các vấn đề liên quan