PC · IT · DB/Oracle

[오라클] 정규식 REGEXP_LIKE 이메일주소 유효성 검사 (Validate Email Address)

뿌레도 2023. 8. 29. 23:13
728x90

 

[오라클] 정규식 REGEXP_LIKE 이메일 주소 유효성 검사하기 (Validate Email Address)

 지난 글에서 오라클 정규식 REGEXP_LIKE의 정의 및 패턴, 매개변수에 대해서 다뤘습니다. 이번에는 이메일 주소의 유효성을 검사하기 위해 REGEXP_LIKE 함수를 사용하는 다양한 방법을 소개하고자 합니다.

 

이전 글  

 

[오라클] 정규식 REGEXP_LIKE 정의 및 패턴, 매개변수 (REGEXP_LIKE definition and pattern, parameters)

[오라클] 정규식 REGEXP_LIKE 정의 및 패턴, 매개변수 (REGEXP_LIKE definition and pattern, parameters) REGEXP_LIKE는 오라클 데이터베이스에서 제공하는 함수로, 주어진 문자열이 정규 표현식과 일치하는지 여부

trivia-korea.tistory.com

 

 


1. 기본적인 이메일 주소 형식: 이메일 주소가 기본적인 형식을 따르는지 확인하기
 이메일 주소가 올바른 형식인지 확인하기 위해 패턴을 사용합니다. 패턴은 이메일 주소의 각 부분을 검사하고, '@'와 '.' 문자를 올바르게 사용하는지 확인합니다.

SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$');


2. 도메인 이름의 최소 길이: 이메일 주소의 도메인 이름이 최소 길이를 충족하는지 확인

 이메일 주소의 도메인 이름이 최소 2자에서 4자까지의 길이를 가져야 함을 확인하기 위해 패턴을 사용합니다.

SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$');


3. 특정 도메인만 허용: 특정 도메인만을 허용하고 다른 도메인은 거부하기

 이메일 주소의 도메인이 [naver] [daum] [gmail] 중 하나인지 확인하기 위해 패턴을 사용합니다.

SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@(naver|daum|gmail).[A-Za-z]{2,}$');

 

 

 

 

 

 


4. 특정 도메인 제외: 특정 도메인을 제외하고 다른 도메인만 허용하기

 이메일 주소의 도메인이 [naver.com] [daum.net] [gmail.com] 이 아닌지 확인하기 위해 패턴을 사용합니다.

SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@(?!naver.com|daum.net|gmail.com)[A-Za-z0-9.-]+.[A-Za-z]{2,}$');



5. 대소문자 구분 없이 검사: 이메일 주소의 대소문자를 구분하지 않고 검사하기

 이메일 주소 검사시 REGEXP_LIKE 함수의 세 번째 매개변수로 i 를 사용하여 대소문자를 구분하지 않고 검사합니다.

SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$', 'i');


 이외에도 REGEXP_LIKE 함수를 사용하여 다양한 이메일 주소 유효성 검사 방법을 구현할 수 있습니다.

 


번외) REGEXP_LIKE 이메일 주소 확인 함수로 만들어서 사용하기

CREATE OR REPLACE FUNCTION VALIDATE_EMAIL_ADDRESS(IN_EMAIL IN VARCHAR2) RETURN number IS
BEGIN
  IF REGEXP_LIKE(IN_EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$') THEN
  -- 형식이 맞는 경우
    RETURN 1;
  ELSE
  --형식이 틀린 경우
    RETURN 0;
  END IF;
END;

 

=> 이메일 주소 확인 함수 조건절에서 사용하기

--실제 적용시
SELECT
USER_NAME
FROM USERS
WHERE VALIDATE_EMAIL(EMAIL) = 1;


--테스트용
SELECT
USER_NAME
FROM ( select 'trivia-korea@tistory.com' as email from dual )
WHERE VALIDATE_EMAIL(EMAIL) = 1;

 

#오라클 REGEXP_LIKE 이메일 주소 확인 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 #오라클 REGEXP_LIKE 이메일 주소 형식 확인 #오라클 REGEXP_LIKE 이메일 주소 유효성 체크 #오라클 REGEXP_LIKE 이메일 주소 유효성 검증 #오라클 REGEXP_LIKE 이메일 주소 패턴 확인 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 정규식 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 방법 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 드 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 예제 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 SQL #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 함수 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 패턴

[오라클] 정규식 REGEXP_LIKE 전화번호 유효성 검사 (Validate Phone Number)

 

[오라클] 정규식 REGEXP_LIKE 활용 - 전화번호 유효성 검사 (Oracle REGEXP_LIKE Validate Phone Number)

[오라클] 정규식 REGEXP_LIKE 활용 - 전화번호 유효성 검사 (Oracle REGEXP_LIKE Validate Phone Number) 이메일 주소의 유효성을 검사에 이은 REGEXP_LIKE 활용 2편, 전화번호 유효성 검사하기 입니다. 1. 숫자로만

trivia-korea.tistory.com

 

300x250