Android में रेगेक्स (Regex) से ईमेल वैलिडेशन
लॉगिन/साइनअप फॉर्म्स में ईमेल वैलिडेशन आवश्यक है। यह उदाहरण Pattern और Matcher क्लासेस का उपयोग करके EditText इनपुट को वैलिडेट करता है।
चरण 1: नया प्रोजेक्ट
Android Studio: File → New Project।
चरण 2: लेआउट (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:padding="20dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/email"
android:hint="ईमेल आईडी"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" />
<Button
android:id="@+id/valid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="वैलिडेशन चेक करें" />
</LinearLayout>
चरण 3: MainActivity.java - ईमेल वैलिडेशन लॉजिक
package com.example.myapplication;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
// RFC 5322 सरलीकृत रेगेक्स
private static final String EMAIL_REGEX =
"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText email = findViewById(R.id.email);
Button valid = findViewById(R.id.valid);
valid.setOnClickListener(v -> {
String input = email.getText().toString().trim();
if (input.isEmpty()) {
Toast.makeText(this, "कृपया ईमेल आईडी दर्ज करें", Toast.LENGTH_LONG).show();
return;
}
Pattern pattern = Pattern.compile(EMAIL_REGEX);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
Toast.makeText(this, "ईमेल आईडी वैध है", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "वैध ईमेल आईडी नहीं है", Toast.LENGTH_LONG).show();
}
});
}
}
रेगेक्स व्याख्या:
^[A-Za-z0-9._%+-]+ // लोकल पार्ट: अक्षर, अंक, डॉट, अंडरस्कोर, %, +, -
@ // @ सिंबल अनिवार्य
[A-Za-z0-9.-]+ // डोमेन नाम
\. // डॉट (एस्केप्ड)
[A-Za-z]{2,}$ // TLD: कम से कम 2 अक्षर
बेहतर विकल्प: Android बिल्ट-इन वैलिडेटर
import android.util.Patterns; // सरल और विश्वसनीय boolean isValid = Patterns.EMAIL_ADDRESS.matcher(input).matches();
टेस्ट केस और परिणाम
| इनपुट | परिणाम |
|---|---|
| (खाली) | "कृपया ईमेल आईडी दर्ज करें" |
| invalid-email | "वैध ईमेल आईडी नहीं है" |
| user@domain.com | "ईमेल आईडी वैध है" |
| test.email+tag@example.co.in | "ईमेल आईडी वैध है" |



नोट: रेगेक्स परफेक्ट नहीं हो सकता; Patterns.EMAIL_ADDRESS प्रोडक्शन के लिए बेहतर है।