개발/Regular expression

[RegExp sample] HEX 타입 체크

smile-haha 2021. 1. 12. 14:46
반응형

/^\#(([0-9a-f]){3}|([0-9a-f]){6}|([0-9a-f]){8})$/i


1. HEX란?

먼저 HEX 값은 색을 나타내는 표현 방식중 하나로, #과 16진수 6자리(+2자리)로 이루어져있다.

16진수는 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 으로 표현되며, 알파벳 대소문자는 구분하지 않는다.

HEX 값이 6자리인 경우, 빨강, 초록, 파랑의 색의 강도를 256 단계에 걸쳐 나타낸 것이고, 8자리일 경우는 투명도까지 표현하는 경우이다.

또한 HEX 값이 3자리인 경우도 있는데, 이 경우는 빨강, 초록, 파랑의 각 값을 16단계에 걸쳐서 표현한 것이다.

※ 투명도 값을 넣지 않는 경우 자동으로 FF(불투명)으로 인식한다.

※ 투명도는 FF일때 불투명, 00일때 완전히 투명해진다.

📌HEX값의 유형
- #으로 시작
- 16진수가 3자리 or 6자리 or 8자리일 수 있다.
- 16진수는 대소문자를 구별하지 않는다.

 

 

2. 정규표현식

/^\#(([0-9a-f]){3}|([0-9a-f]){6}|([0-9a-f]){8})$/i

var reg = new  RegExp(/^\#(([0-9a-f]){3}|([0-9a-f]){6}|([0-9a-f]){8})$/i);
reg.test('#fff'); //3자리 true
reg.test("#ff3355");//6자리 true
reg.test("#ff335544");//8자리 true
reg.test("#ff3355441");//7자리 false
reg.test("#ffpp55");//16진수가 아닌 값 "pp" false

아래는 정규표현식을 시각화해 보았다.

 

3. 정규표현식 구조

HEX 정규표현식 구조 시각화

 

 


 

🎃정규표현식이 왜 저렇게 구성됬는지 모르겠다면? 아래 게시글을 참고하면 도움이 될 겁니다.

 

[정규표현식] 정규표현식(Regular expression) (feat. javascript)

🎈 정규표현식(Regular expression) 정규 표현식(정규식)은 문자열에서 특정 문자 조합을 찾기 위한 패턴 🎈 언제 이용하는가? - 특정 형식의 문자열(e-mail 주소/전화번호/URL/RGB값/HEX값 등)인지 검사 //

smile-haha.tistory.com

 

🎃정규표현식 구조 이미지 출처를 알고 싶으시면? 아래 게시글을 참고해 주세요.

 

[정규표현식] 테스트 사이트

정규표현식을 작성할때, 저는 주로 크롬 개발자 도구의 console창에서 테스트를 해보고는 했습니다. 그런데 이번에 검색을 해보니 정규표현식을 테스트 하기 좋은 사이트가 있어서 소개해 보겠습

smile-haha.tistory.com

 

🎃또 다른 정규표현식 샘플을 확인하고 싶다면? 아래 예제는 어떠세요?

 

[정규표현식] 전화/핸드폰 번호 샘플

🎈(일반적인) 전화/핸드폰 번호 특징 - 0으로 시작 - 0NZ-XXXX-YYYY 또는 0NZ)XXXX-YYYY 과 같은 패턴 ※ 유선전화의 경우 편의상 지역번호에 괄호를 치는 경우가 있다. - 첫번째 자리는 2자리(02) 또는 3자

smile-haha.tistory.com

 

[정규표현식] 이메일 샘플

^0\d{1,2}(-|\))\d{3,4}-\d{4}$1. (일반적인) 이메일 특징 이메일 주소는 [ 로컬 부분 ]@[ 도메인 부분 ]으로 구성됨 1) 로컬 부분 - 대문자 및 소문자 라틴문자, 숫자 - 특수문자는 대부분 점(.), 밑줄(_),

smile-haha.tistory.com

 

 

도움이 되셨으면 좋겠습니다!

반응형