텍스트 편집 시 Android에서 이메일 주소 확인
어떻게 해야 할까요?Email Validation
에edittext
에android
저는 구글 & SO를 살펴보았지만, 그것을 검증할 수 있는 간단한 방법을 찾지 못했습니다.
Java:
public static boolean isValidEmail(CharSequence target) {
return (!TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches());
}
코틀린:
fun CharSequence?.isValidEmail() = !isNullOrEmpty() && Patterns.EMAIL_ADDRESS.matcher(this).matches()
편집: Android 2.2+ 이후 버전에서 작동합니다!!
편집: 누락 추가;
전자 메일 확인을 수행하는 방법은 여러 가지가 있지만 간단하고 쉬운 방법은 두 가지입니다.
1 - 사용EditText(....).addTextChangedListener
그것은 모든 입력에 계속해서 트리거합니다.EditText box
i.e email_id가 잘못되었거나 유효합니다.
/**
* Email Validation ex:- tech@end.com
*/
final EditText emailValidate = (EditText)findViewById(R.id.textMessage);
final TextView textView = (TextView)findViewById(R.id.text);
String email = emailValidate.getText().toString().trim();
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
emailValidate .addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (email.matches(emailPattern) && s.length() > 0)
{
Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
// or
textView.setText("valid email");
}
else
{
Toast.makeText(getApplicationContext(),"Invalid email address",Toast.LENGTH_SHORT).show();
//or
textView.setText("invalid email");
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// other stuffs
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// other stuffs
}
});
2 - 사용하는 가장 간단한 방법if-else
조건.getText()를 사용하여 EditText 상자 문자열을 사용하여 전자 메일에 제공된 패턴과 비교합니다.패턴이 일치하지 않거나 일치하지 않으면 클릭 버튼을 클릭하여 메시지를 토스트합니다.텍스트 편집 상자에 있는 문자의 모든 입력에서 트리거되지는 않습니다. 간단한 예는 아래와 같습니다.
final EditText emailValidate = (EditText)findViewById(R.id.textMessage);
final TextView textView = (TextView)findViewById(R.id.text);
String email = emailValidate.getText().toString().trim();
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
// onClick of button perform this simplest code.
if (email.matches(emailPattern))
{
Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(),"Invalid email address", Toast.LENGTH_SHORT).show();
}
나는 이런 식으로 했습니다.
전자 메일 주소가 유효한지 확인하려면 다음 방법을 추가합니다.
private boolean isValidEmailId(String email){
return Pattern.compile("^(([\\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})$").matcher(email).matches();
}
이제 String of EditText로 확인합니다.
if(isValidEmailId(edtEmailId.getText().toString().trim())){
Toast.makeText(getApplicationContext(), "Valid Email Address.", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "InValid Email Address.", Toast.LENGTH_SHORT).show();
}
다 했어요.
이 방법을 사용하여 전자 메일 형식을 확인합니다.전자 메일을 문자열로 전달합니다. 형식이 올바르면 true를 반환하고 그렇지 않으면 false를 반환합니다.
/**
* validate your email address format. Ex-akhi@mani.com
*/
public boolean emailValidator(String email)
{
Pattern pattern;
Matcher matcher;
final 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();
}
사용해 보십시오.
if (!emailRegistration.matches("[a-zA-Z0-9._-]+@[a-z]+\.[a-z]+")) {
editTextEmail.setError("Invalid Email Address");
}
public static boolean isEmailValid(String email) {
boolean isValid = false;
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()) {
isValid = true;
}
return isValid;
}
이 방법을 사용하여 전자 메일의 유효성을 확인합니다.
public static boolean isEditTextContainEmail(EditText argEditText) {
try {
Pattern pattern = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher matcher = pattern.matcher(argEditText.getText());
return matcher.matches();
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
문의 사항이 있으면 알려주세요.
이것을 먹어보세요.
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}" +
")+"
);
텍스트 편집
final String emailText = email.getText().toString();
EMAIL_ADDRESS_PATTERN.matcher(emailText).matches()
전자 메일 주소를 확인하기 위해 만든 샘플 메서드입니다. 전달된 문자열 매개 변수가 유효한 전자 메일 주소이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
private boolean validateEmailAddress(String emailAddress){
String expression="^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = emailAddress;
Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
return matcher.matches();
}
언급URL : https://stackoverflow.com/questions/12947620/email-address-validation-in-android-on-edittext
'sourcecode' 카테고리의 다른 글
24시간 형식으로 Xcode Swift am/pm 시간 (0) | 2023.08.11 |
---|---|
{0}, {0,}을(를) 사용하여 어레이를 초기화하시겠습니까? (0) | 2023.08.11 |
mariadb 스토어드 프로시저에서 PHP 변수 설정; SQLSTATE [42S22]:열을 찾을 수 없음 (0) | 2023.08.11 |
models.py 을 여러 파일로 분할합니다. (0) | 2023.08.11 |
서로 다른 호스트 간에 도커 컨테이너를 이동하는 방법은 무엇입니까? (0) | 2023.08.06 |