이 메일 정규 표현식

const emailRegex = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/;
emailRegex.test(testEmailAddress); // true || false

 

  • ^[a-z0-9._%+-]+: 이메일의 로컬 파트에서 영어 소문자 알파벳, 숫자, 점(.), 밑줄(_), 퍼센트(%), 플러스(+), 하이픈(-)을 허용
  • @[a-z0-9.-]+: 도메인 부분에서 영어 소문자 알파벳, 숫자, 점(.), 하이픈(-)을 허용
  • \.[a-zA-Z]{2,}$: 최상위 도메인 부분에서 최소 2자 이상의 영어 알파벳을 허용

 

이메일의 시작과 끝에 특수문자 있는지 확인

 

const specialChars = /[!#$%&'*+/=?^_`{|}~-]/;
const localPart = email.split('@')[0];

if (specialChars.test(localPart[0]) || specialChars.test(localPart[localPart.length - 1])) {
  return false;
}

 

특수문자가 연속으로 사용되었는지 확인

for (let i = 0; i < localPart.length - 1; i++) {
  if (specialChars.test(localPart[i]) && specialChars.test(localPart[i + 1])) {
    args.constraints[0] = 'consecutiveSpecialChars';
    return false;
  }
}

+ Recent posts