如何在Java中validation字符串?

如何在Java中validation字符串? 即只允许字符而不是数字? 电子邮件validation怎么样?

如何在java中validation字符串?

一种常见的方法是使用正则表达式或正则表达式。 在Java中,您可以使用String.matches(String regex)方法。 使用正则表达式,我们说你匹配模式的字符串如果匹配成功, .matches()返回true。


只允许字符而不是数字?

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

邮件validation?

电子邮件地址有一个非常复杂的规范 ,这需要一个怪异的正则表达式准确。 这个很好,很短,但不完全正确:

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

如果你真的想调查它: 如何validation电子邮件和比较电子邮件validation正则表达式 (PHP)。


这是开始使用正则表达式的绝佳资源:
http://www.regular-expressions.info

对于只有字符的字符串尝试

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

用于电子邮件validation尝试

 private boolean verifyEmail(String email) { email = email.trim(); if(email == null || email.equals("")) return false; if(!email.matches("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")) return false; return true; } 

对于像这样的简单情况,请使用RegExp作为已建议的NullUserException。 如果您需要更强大的解决方案,可以使用一些validation框架,即Apache Commons Validator 。

如果您将Apache commons-lang作为项目依赖项(这很常见),则可以使用StringUtils.isAlpha() 。 如果您有更具体的validation或不希望依赖于commons-lang,则可以使用正则表达式和String.matches()