【发布时间】:2014-01-31 10:26:36
【问题描述】:
我需要知道包含字母数字字符、@、下划线 (_)、句号 (.) 且不包含任何空格的字符串的正则表达式。也适用于字母数字字符,它允许空格。我试过这个正则表达式,
^[_A-Za-z0-9-\\.\\@]$ and ^[A-Za-z0-9-\\s]$
代码:
private static final String Username_REGEX ="^[_A-Za-z0-9.@-]$";
public static boolean isUsername(EditText editText, boolean required) {
return isValid(editText, Username_REGEX,Username_MSG, required);
}
public static boolean isValid(EditText editText, String regex, String errMsg, boolean required) {
String text = editText.getText().toString().trim();
editText.setError(null);
if ( required && !hasTextemt(editText) ) return false;
if (required && !Pattern.matches(regex, text)) {
editText.setError(errMsg);
return false;
};
return true;
}
public static boolean hasTextemt(EditText editText) {
String text = editText.getText().toString().trim();
editText.setError(null);
if (text.length() == 0) {
editText.setError(emt);
return false;
}
return true;
}
这是正确的吗?我没有得到正确的结果。谁能指导我?
【问题讨论】:
-
您是否正在尝试验证电子邮件地址?
-
@DigveshPatel 是的,当然
-
@SMR 是的,我试过了,效果很好
-
您忘记包含您的
isValid方法。您正在转发它的结果,所以它很重要。 -
@Pshemo 我粘贴了 isvalid 方法