วิธีตรวจสอบข้อความedittext
คือที่อยู่อีเมลหรือไม่โดยไม่ใช้javascript
และนิพจน์ทั่วไป ที่นี่ฉันใช้inputtype="textEmailAddress"
สิ่งนี้ใช้งานได้ แต่ไม่มีข้อความแสดงข้อผิดพลาดปรากฏขึ้น
วิธีตรวจสอบข้อความedittext
คือที่อยู่อีเมลหรือไม่โดยไม่ใช้javascript
และนิพจน์ทั่วไป ที่นี่ฉันใช้inputtype="textEmailAddress"
สิ่งนี้ใช้งานได้ แต่ไม่มีข้อความแสดงข้อผิดพลาดปรากฏขึ้น
คำตอบ:
/**
* method is used for checking valid email id format.
*
* @param email
* @return boolean true for valid false for invalid
*/
public static boolean isEmailValid(String email) {
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
ส่งสตริงข้อความแก้ไขของคุณในฟังก์ชันนี้
สำหรับการยืนยันอีเมลที่ถูกต้องคุณต้องมีการตรวจสอบสิทธิ์ฝั่งเซิร์ฟเวอร์
โปรดทราบว่าขณะนี้มีวิธีการในตัวใน Android ดูคำตอบด้านล่าง
String
การดำเนินการCharSequence
ดังนั้นฉันคิดว่านักแสดงจากemail
ถึงinputStr
ซ้ำซ้อน
บน Android 2.2+ ให้ใช้สิ่งนี้:
boolean isEmailValid(CharSequence email) {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
ตัวอย่างเช่น:
EditText emailid = (EditText) loginView.findViewById(R.id.login_email);
String getEmailId = emailid.getText().toString();
// Check if email id is valid or not
if (!isEmailValid(getEmailId)){
new CustomToast().Show_Toast(getActivity(), loginView,
"Your Email Id is Invalid.");
}
โปรดปฏิบัติตามขั้นตอนต่อไปนี้
ขั้นตอนที่ 1 :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_below="@+id/textView_email"
android:layout_marginTop="40dp"
android:hint="Email Adderess"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/textView_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="Email Validation Example" />
</RelativeLayout>
ขั้นตอนที่ 2:
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
ขั้นตอนที่ 3:
public class MainActivity extends Activity {
private EditText email;
private String valid_email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initilizeUI();
}
/**
* This method is used to initialize UI Components
*/
private void initilizeUI() {
// TODO Auto-generated method stub
email = (EditText) findViewById(R.id.editText_email);
email.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
Is_Valid_Email(email); // pass your EditText Obj here.
}
public void Is_Valid_Email(EditText edt) {
if (edt.getText().toString() == null) {
edt.setError("Invalid Email Address");
valid_email = null;
} else if (isEmailValid(edt.getText().toString()) == false) {
edt.setError("Invalid Email Address");
valid_email = null;
} else {
valid_email = edt.getText().toString();
}
}
boolean isEmailValid(CharSequence email) {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email)
.matches();
} // end of TextWatcher (email)
});
}
}
ฉันเขียนไลบรารีที่ขยาย EditText ซึ่งรองรับวิธีการตรวจสอบความถูกต้องบางอย่างและมีความยืดหยุ่นมาก
ปัจจุบันตามที่ฉันเขียน วิธีการตรวจสอบที่รองรับโดยกำเนิด (ผ่านแอตทริบิวต์ xml ) คือ
คุณสามารถตรวจสอบได้ที่นี่: https://github.com/vekexasia/android-form-edittext
หวังว่าคุณจะสนุกกับมัน :)
ในหน้าฉันเชื่อมโยงคุณจะพบตัวอย่างสำหรับการตรวจสอบอีเมล ฉันจะคัดลอกข้อมูลโค้ดสัมพัทธ์ที่นี่:
<com.andreabaccega.widget.FormEditText
style="@android:style/Widget.EditText"
whatever:test="email"
android:id="@+id/et_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"
android:inputType="textEmailAddress"
/>
นอกจากนี้ยังมีแอปทดสอบที่แสดงความเป็นไปได้ของห้องสมุด
นี่คือภาพหน้าจอของแอปที่ตรวจสอบช่องอีเมล
ดังที่ได้กล่าวไว้ในคำตอบข้อใดข้อหนึ่งคุณสามารถใช้Patterns
ชั้นเรียนดังต่อไปนี้:
public final static boolean isValidEmail(CharSequence target) {
if (target == null)
return false;
return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
หากคุณรองรับ API ระดับน้อยกว่า 8 ด้วยซ้ำคุณสามารถคัดลอกPatterns.java
ไฟล์ลงในโครงการของคุณและอ้างอิงได้โดยง่าย คุณสามารถรับซอร์สโค้ดได้Patterns.java
จากลิงค์นี้
ในกรณีของคุณคุณสามารถใช้ไฟล์android.util.Patterns package
.
EditText email = (EditText)findViewById(R.id.user_email);
if(Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches())
Toast.makeText(this, "Email is VALID.", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "Email is INVALID.", Toast.LENGTH_SHORT).show();
รหัสต่อไปนี้น่าจะเป็นประโยชน์สำหรับคุณ
String email;
check.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
checkEmail(email);
if (checkMail) {
System.out.println("Valid mail Id");
}
}
});
}
}
public static boolean checkEmail(String email) {
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}" + ")+");
return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
}
อีเมลนี้คือรหัสอีเมลของคุณ
public boolean validateEmail(String email) {
Pattern pattern;
Matcher matcher;
String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
pattern = Pattern.compile(EMAIL_PATTERN);
matcher = pattern.matcher(email);
return matcher.matches();
}
Apache Commons Validatorสามารถใช้ตามที่กล่าวไว้ในคำตอบอื่น ๆ
ขั้นตอน: 1) ดาวน์โหลดไฟล์ jar จากที่นี่
ขั้นตอน: 2) เพิ่มลงใน libs โครงการของคุณ
การนำเข้า:
import org.apache.commons.validator.routines.EmailValidator;
รหัส:
String email = "myName@example.com";
boolean valid = EmailValidator.getInstance().isValid(email);
และอนุญาตที่อยู่ในท้องถิ่น ::
boolean allowLocal = true;
boolean valid = EmailValidator.getInstance(allowLocal).isValid(email);
สำหรับการตรวจสอบที่อยู่อีเมลลองใช้รหัสที่ง่ายและสะดวกนี้
String email = inputEmail.getText().toString().trim();
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches())
{
inputEmail.setError("Enter Valid Email Address");
inputEmail.requestFocus();
}
วิธีการง่ายๆ
private boolean isValidEmail(String email)
{
String emailRegex ="^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
if(email.matches(emailRegex))
{
return true;
}
return false;
}
I Hope this code is beneficial for you
public class Register extends Activity
{
EditText FirstName, PhoneNo, EmailId,weight;
Button Register;
private static final Pattern EMAIL_PATTERN = Pattern
.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
private static final Pattern USERFIRSTNAME_PATTERN = Pattern
.compile("[a-zA-Z0-9]{1,250}");
private static final Pattern PHONE_PATTERN = Pattern
.compile("[a-zA-Z0-9]{1,250}");
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
Register=(Button) findViewById(R.id.register);
FirstName=(EditText)findViewById(R.id.person_firstname);
PhoneNo =(EditText)findViewById(R.id.phone_no);
EmailId=(EditText)findViewById(R.id.email_id);
weight=(EditText) findViewById(R.id.weight);
Register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sFirstName= FirstName.getText().toString();
sPhoneNo= PhoneNo.getText().toString();
sEmailId= EmailId.getText().toString();
sweight= weight.getText().toString();
if(sFirstName.equals("")||sPhoneNo.equals("")||sEmailId.equals("")||sweight.equals(""))
{
if ((!CheckUsername(sFirstName)))
{
Toast.makeText(Register.this, "FirstName can not be null",Toast.LENGTH_LONG).show();
}
else if ((!Checkphoneno(sPhoneNo)))
{
Toast.makeText(Register.this, "ENTER VALID mobile no ",Toast.LENGTH_LONG).show();
}
else if ((!CheckEmail(sEmailId)))
{
Toast.makeText(Register.this, "ENTER VALID EMAIL ID",Toast.LENGTH_LONG).show();
}
else if ((!Checkweight(sweight)))
{
Toast.makeText(Register.this, "ENTER Weight in kg",Toast.LENGTH_LONG).show();
}
}
}
private boolean CheckEmail(String sEmailId) {
return EMAIL_PATTERN.matcher(sEmailId).matches();
}
private boolean CheckUsername(String sFirstName) {
return USERFIRSTNAME_PATTERN.matcher(sFirstName).matches();
}
private boolean Checkphoneno(String sPhoneNo) {
return PHONE_PATTERN.matcher(sPhoneNo).matches();
}
private boolean Checkweight(String sweight) {
return Weight_PATTERN.matcher(sweight).matches();
}
});
public static boolean isEmailValid(String email) {
boolean isValid = false;
String expression = "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@"
+ "((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
+ "[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\."
+ "([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
+ "[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
+ "([a-zA-Z]+[\\w-]+\\.)+[a-zA-Z]{2,4})$";
// "^[\\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()) {
isValid = true;
}
return isValid;
}
สำหรับการตรวจสอบอีเมลลองใช้สิ่งนี้
public boolean checkemail(String email)
{
Pattern pattern = Pattern.compile(".+@.+\\.[a-z]+");
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
คุณสามารถตรวจสอบได้โดยนิพจน์ทั่วไป
public boolean isValid(String strEmail)
{
pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
matcher = pattern.matcher(strEmail);
if (strEmail.isEmpty()) {
return false;
} else if (!matcher.matches()) {
return false;
}
else
{
return true;
}
}
private boolean isValidEmailID(String email) {
String PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern pattern = Pattern.compile(PATTERN);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
ด้วย android.util.Patterns และ Kotlin มันง่ายมาก ฟังก์ชันบรรทัดเดียวที่ส่งคืนค่าบูลีน
fun validateEmail(email: String) = Patterns.EMAIL_ADDRESS.matcher(email)