znq*_*znq 312 android email-validation
在Android中验证电子邮件地址(例如来自用户输入字段)的好方法是什么?org.apache.commons.validator.routines.EmailValidator似乎不可用.有没有其他图书馆这样做已经包含在Android中,或者我是否必须使用RegExp?
min*_*iot 1021
另一个选项是从API级别8开始的内置模式:
public final static boolean isValidEmail(CharSequence target) {
if (TextUtils.isEmpty(target)) {
return false;
} else {
return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
来自@AdamvandenHoven的一线解决方案:
public final static boolean isValidEmail(CharSequence target) {
return !TextUtils.isEmpty(target) && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
Run Code Online (Sandbox Code Playgroud)
And*_*yeu 99
下一个模式用于K-9邮件:
public static final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
"\\@" +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
"(" +
"\\." +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
")+"
);
Run Code Online (Sandbox Code Playgroud)
你可以使用功能
private boolean checkEmail(String email) {
return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
}
Run Code Online (Sandbox Code Playgroud)
Lut*_*ten 69
从API 8(android 2.2)开始,有一个模式:android.util.Patterns.EMAIL_ADDRESS http://developer.android.com/reference/android/util/Patterns.html
所以你可以用它来验证你的电子邮件串:
private boolean isValidEmail(String email) {
Pattern pattern = Patterns.EMAIL_ADDRESS;
return pattern.matcher(email).matches();
}
Run Code Online (Sandbox Code Playgroud)
如果电子邮件有效,则返回true
UPD:此模式源代码是:
public static final Pattern EMAIL_ADDRESS
= Pattern.compile(
"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
"\\@" +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
"(" +
"\\." +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
")+"
);
Run Code Online (Sandbox Code Playgroud)
参考:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/util/Patterns.java
因此,您可以自己构建它以与API <8兼容.
Gle*_*len 47
不要使用注册表.
显然,以下是一个注册表,可以正确验证大多数符合RFC 2822的电子邮件地址,(并且仍然会失败,例如"user@gmail.com.nospam",org.apache.commons.validator也是如此. routines.EmailValidator)
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Run Code Online (Sandbox Code Playgroud)
可能是验证电子邮件的最简单方法,只需将确认电子邮件发送到所提供的地址,然后它就会反弹,然后它就无效了.
如果您想执行一些基本检查,您可以检查它是否在表单中 *@*
如果您有一些特定于业务逻辑的验证,那么您可以使用正则表达式执行该操作,例如必须是gmail.com帐户或其他东西.
Sal*_*zir 45
我们现在有简单的电子邮件模式匹配器
private static boolean isValidEmail(String email) {
return !TextUtils.isEmpty(email) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*teo 16
这是Android Studio的建议:
public static boolean isEmailValid(String email) {
return !(email == null || TextUtils.isEmpty(email)) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
Run Code Online (Sandbox Code Playgroud)
Pan*_*iya 14
使用简单的一行代码进行电子邮件验证
public static boolean isValidEmail(CharSequence target) {
return !TextUtils.isEmpty(target) && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
Run Code Online (Sandbox Code Playgroud)
使用像......
if (!isValidEmail(yourEdittext.getText().toString()) {
Toast.makeText(context, "your email is not valid", 2000).show();
}
Run Code Online (Sandbox Code Playgroud)
Mud*_*sir 11
您可以使用正则表达式来执行此操作.像下面这样的东西.
Pattern pattern = Pattern.compile(".+@.+\\.[a-z]+");
String email = "xyz@xyzdomain.com";
Matcher matcher = pattern.matcher(email);
boolean matchFound = matcher.matches();
Run Code Online (Sandbox Code Playgroud)
注意:检查上面给出的正则表达式,不要按原样使用它.
Vic*_*iah 11
使用android:inputType ="textEmailAddress"如下:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="email"
android:inputType="textEmailAddress"
android:id="@+id/email"
/>
Run Code Online (Sandbox Code Playgroud)
和:
boolean isEmailValid(CharSequence email) {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email)
.matches();
}
Run Code Online (Sandbox Code Playgroud)
这里有一个Patterns
类android.util
有用的课程.以下是我经常用于验证电子邮件和许多其他内容的方法
private boolean isEmailValid(String email) {
return !TextUtils.isEmpty(email) && Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
Run Code Online (Sandbox Code Playgroud)
你可以像这样写一个Kotlin扩展:
fun String.isValidEmail() =
this.isNotEmpty() && android.util.Patterns.EMAIL_ADDRESS.matcher(this).matches()
Run Code Online (Sandbox Code Playgroud)
然后像这样调用它:
email.isValidEmail()
Run Code Online (Sandbox Code Playgroud)
这是 kotlin 使用扩展函数的最佳方法
fun String.isEmailValid(): Boolean {
return !TextUtils.isEmpty(this) && android.util.Patterns.EMAIL_ADDRESS.matcher(this).matches()
}
Run Code Online (Sandbox Code Playgroud)
使用扩展函数的最简单 Kotlin 解决方案:
fun String.isEmailValid() =
Pattern.compile(
"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
"\\@" +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
"(" +
"\\." +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
")+"
).matcher(this).matches()
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样验证:
"testemail6589@gmail.com".isEmailValid()
Run Code Online (Sandbox Code Playgroud)
如果您在 kotlin-multiplatform 中无法访问Pattern
,则等效于:
fun String.isValidEmail() = Regex(emailRegexStr).matches(this)
Run Code Online (Sandbox Code Playgroud)
小智 5
我强烈建议您不要尝试“验证”电子邮件地址,否则您只会无缘无故地投入大量工作。
只需确保输入的内容不会破坏您自己的代码 - 例如,没有可能导致异常的空格或非法字符。
其他任何事情只会让你付出大量的努力而回报却微乎其微......
如果要验证电子邮件ID,请调用此方法.
public static boolean isValid(String email)
{
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = email;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches())
{
return true;
}
else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
对于电子邮件验证,android提供了一些InBuilt Pattern.但它只支持API级别8及更高版本.
以下是用于检查电子邮件验证的模式的代码.
private boolean Email_Validate(String email)
{
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
Run Code Online (Sandbox Code Playgroud)
确保执行此方法后,您应检查如果此方法返回true,则允许保存电子邮件,如果此方法返回false,则显示电子邮件为"无效"的消息.
希望你得到答案,谢谢你.
归档时间: |
|
查看次数: |
213710 次 |
最近记录: |