Giới thiệu
Ví dụ này minh họa cách validate (kiểm tra hợp lệ) địa chỉ email nhập vào EditText trong Android bằng Regular Expression (Regex).
Bước 1: Tạo dự án mới
Android Studio → File → New Project.
Bước 2: Giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/parent"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:orientation="vertical">
<EditText
android:id="@+id/emailId"
android:hint="Nhập Email"
android:layout_margin="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/text"
android:textSize="18sp"
android:textAlignment="center"
android:layout_width="wrap_content"
android:textColor="#000"
android:text="Kiểm tra"
android:layout_height="wrap_content" />
</LinearLayout>
Bước 3: Logic validate (src/MainActivity.java)
package com.example.andy.myapplication;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
int view = R.layout.activity_main;
Button button;
EditText emailId;
// Regex pattern cho email cơ bản
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(view);
button = findViewById(R.id.text);
emailId = findViewById(R.id.emailId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String input = emailId.getText().toString().trim();
if (input.isEmpty()) {
Toast.makeText(getApplicationContext(), "Vui lòng nhập email", Toast.LENGTH_SHORT).show();
} else if (input.matches(emailPattern)) {
Toast.makeText(getApplicationContext(), "Email hợp lệ", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Email không hợp lệ", Toast.LENGTH_SHORT).show();
}
}
});
}
}
Giải thích Regex Pattern
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
[a-zA-Z0-9._-]+: Phần trước @ (chữ, số, dấu chấm, gạch dưới, gạch ngang), ít nhất 1 ký tự@: Ký tự @ bắt buộc[a-z]+: Tên miền (chỉ chữ thường), ít nhất 1 ký tự\\.+: Dấu chấm (escaped), ít nhất 1[a-z]+: Phần mở rộng (.com, .vn...), ít nhất 1 ký tự
⚠️ Hạn chế: Regex trên đơn giản, không cover hết các trường hợp email hợp lệ theo chuẩn RFC 5322 (ví dụ: sub-domain, TLD dài, ký tự đặc biệt...).
Khuyến nghị: Dùng
Khuyến nghị: Dùng
android.util.Patterns.EMAIL_ADDRESS có sẵn:
import android.util.Patterns;
...
if (Patterns.EMAIL_ADDRESS.matcher(input).matches()) {
// Email hợp lệ
}
Chạy ứng dụng
Chạy app → Nhập email hợp lệ (vd: test@example.com) → Nhấn "Kiểm tra" → Toast "Email hợp lệ". Nhập sai (vd: test@.com, test@example) → Toast "Email không hợp lệ".