정규식 Regular Expression
: 문자열에서 특정 내용을 찾거나 대체, 발췌하는데 사용
- regex 단어로 많이 표현됨
- 특정데이터를 탐색, 확인, 존재여부 등을 쉽게 확인하기 위한 규칙
- 웹 분야 ) password 작성규칙, 첨부파일등에 사용 (자주사용x)
- 데이터 분석 분야 ) 반드시 알아야함
- 타 언어에서도 비슷한 형식 (알고있으면 편리)
작성규칙
/ regexr / i
// : 시작, 종료기호
regexr : pattern 패턴
i : flag
flag옵션
i : 대소문자 구분x
g : 전체 검색
m : 문자열의 행이 바뀌어도 검색 (행바꿈도 포함 검색)
- 붙여서 2개사용도 가능
a-zA-Z : 영어 알파벳 전체포함
ㄱ-ㅎ가-힣 : 한글 전체포함
0-9 : 숫자 전체포함
. : 모든 문자열 포함(숫자, 한글, 영어, 특수기호, 공백 등 줄바꿈 제외 모두 포함)
\d : 숫자
\D : 숫자가 아닌 것 (숫자 제외)
\s : 공백(space)
\S : 공백 제외
\w : 영어,숫자, _
\W : 영어,숫자, _ 가 아닌것
\특수기호 : \! \@ ... : 특수기호를 포함할 것인지
검색 패턴
| : or ( a|b )
[ ] : 괄호안의 문자들 중 하나 (or 처리의 묶음으로 보면 됨)
/abc/ : abc를 포함하는
/[abc]/ : 'a' 또는 'b '또는 'c'를 포함하는
[다-바] : '다 '또는 '라' 또는 '마' 또는 '바' 를 포함하는
[^문자] : 괄호안의 문자를 제외한 것
[^abcd] : a,b,c,d 4개문자를 제외
^문자열$ : ^(시작) $(끝) -> 띄어쓰기X
메서드
("str").match(/regexr/flag)
str에서 매칭되는 항목들을 배열로 반환
("str").replace(/regexr/, "바꿀문자열" )
정규표현식에 매칭되는 항목을 바꿀문자열로 반환
("str").split(/regexr/)
문자열을 정규표현식에 매칭되는 항목으로 쪼개어 배열로 반환
(정규표현식).test("str")
문자열이 정규표현식 규칙에 맞으면 true / 아니면 false
사용
사용 예시 ) 전체에서 la가 포함된 것을 출력
<body>
<script>
let testText = 'This is Javascript Regular Expression';
// 전체에서 la가 포함된 것을 배열로 출력
console.log(testText.match(/[la]/g)); // l과 a 추출
console.log(testText.match(/la/g)); // la 추출
console.log(testText.match(/is/g)); // is 추출
</script>
사용 예시 ) 배열을 탐색해 하나의 문자열에 pngg, jpg, jpeg, gif가 있으면 출력
<body>
<script>
const fileName = ['abc.jpg', 'main.gif', 'doc.pdf', 'movie.mpg', 'code.js'];
// 배열을 탐색해 하나의 문자열에 png, jpg, jpeg, gif가 있는지 확인 출력
for(const file of fileName){
if(file.match(/(jpg|jpeg|png|gif)/i)){
console.log(`이미지 파일 : ${file}`);
} else {
console.log(`그외 파일: ${file}`);
}
}
</script>
'JS > JS 공부' 카테고리의 다른 글
[JS] 새로고침, 취소 location.reload (0) | 2023.04.18 |
---|---|
[JS] 데이터 구조화 (0) | 2023.04.17 |
[JS] 배열 순환 forEach, map,filter (for in, for of) (0) | 2023.04.17 |
[JS] 배열 순환 탐색 메서드 (0) | 2023.04.17 |
[JS] 배열의 정렬 sort, reverse (0) | 2023.04.17 |