Android-实现对邮箱的验证
由于Android开发中经常会使用到表单,还有相关的提交,验证等等。接下来是一个关于EditText的邮箱格式验证:
那么首先要有一个布局文件
相关代码:
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="30dp"
android:layout_marginTop="167dp"
android:text="邮箱"
tools:layout_editor_absoluteX="55dp"
tools:layout_editor_absoluteY="170dp" />
<EditText
android:id="@+id/ed_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/textView"
android:layout_marginEnd="21dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
tools:layout_editor_absoluteX="135dp"
tools:layout_editor_absoluteY="22dp" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="提交"
tools:layout_editor_absoluteX="118dp"
tools:layout_editor_absoluteY="217dp" />
邮箱验证需要的函数isEmail():
邮箱的格式应改为:数字或者字母@数字或字母.数字或字母
public static boolean isEmail(String email){
if (null==email || "".equals(email)) return false;
//Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}"); //简单匹配
Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");//复杂匹配
Matcher m = p.matcher(email);
return m.matches();
}
接下来就要在MainActivity中实现逻辑了:
简单的通过id获取各个控件,还有其他的就不多说了。主要是实现对isEmail()函数的调用。
public class MainActivity extends AppCompatActivity {
//声明需要的控件
private static EditText ed_email;
private Button button;
//由于Android边编译边生成的原理,将匹配字符串放入全局,作为静态变量可以提高效率
public static Pattern p =
Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setFullScreen();
allWindow();
//实体化控件
ed_email=(EditText)findViewById(R.id.ed_email);
button=(Button)findViewById(R.id.button);
//对button添加点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//调用编写的isEmail()函数
//获取到输入的内容并转换为字符串形式,这样才可以进行匹配,且邮箱格式不能太长,字符串长度31以内
//按照实际需要可以添加不同的事件
if (isEmail(ed_email.getText().toString().trim()) && ed_email.getText().toString().trim().length()<=31){
Toast.makeText(MainActivity.this,"邮箱验证成功",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,"邮箱格式错误",Toast.LENGTH_SHORT).show();
}
}
});
}
//验证函数优化版
public static boolean isEmail(String email){
if (null==email || "".equals(email)) return false;
Matcher m = p.matcher(email);
return m.matches();
}
}
以上就是对邮箱的验证,第一次写博客希望能共同学习,共同提高