정규식 표현이란?
정규식 표현은 문자의 패턴을 검색하기 위해 사용하는 문자로 문자열에서 패턴을 찾거나 변환하는데 사용한다.
정규 표현식 메소드
- search() : 해당 문자열의 위치를 인덱스로 찾음
- replace() : 첫번째로 전달된 매개변수를 두번째로 전달된 매개변수로 바꿈
- test() : 정규 표현식과 일치하는 문자가 있으면 true 없으면 false를 반환
정규식 패턴
- [abc] : 대괄호 안에 있는 문자열을 찾음
- [0-9] : 대괄호 사이의 숫자를 찾음
- [x|y] : x와 y 둘 중 하나를 찾음
플래그
- i : 대소문자를 구분하지 않고 비교
- g : 전체 문자열을 정규식과 비교하고 결과가 여러개가 있어도 첫번째로 일치한 문자열을 찾음
- m : 여러줄의 문자열을 정규표현식으로 비교
정규식 메타 문자
- ^문자 : 특정 문자로 시작하는 문자를 찾음
- 문자$ : 특정 문자로 끝나는 문자를 찾음
- \w : 모든 문자를 찾음
- \W : 알파벳 대소문자, 숫자, 문자를 제외한 모든 문자를 찾음
- \d : 숫자만 찾음
- \D : 숫자를 제외한 모든 문자 찾음
- \s : 공백문자를 찾음
- \S : 공백문자를 제외하고 찾음
정규 표현식 기본 문법
// 대각선 사이에 패턴입력
let reg1 = /a/;
let reg2 = new RegExp("a");
[숫자,숫자] : 먼저나온 숫자의 인덱스를 찾음
let numstr = "0123456789";
// 6 이나 8 중에 1개를 뜻함
// 6이 먼저 나오기 때문에 6의 인덱스 번호를 반환
let tempReg = /[6,8]/;
console.log(numstr.search(tempReg));
가장 먼저 나오는 숫자의 인덱스 번호 반환
let numstr2 = "안녕하세요9876543210";
// 0 ~ 9 까지 라는 뜻
// 0 ~ 9 까지의 숫자 중 가장 처음 나온 인덱스의 번호를 반환
let tempReg1 = /[0-9]/;
console.log(numstr2.search(tempReg1));
search()
let str = "Hello JavaScript Program...";
// str 문자열에서 JavaScript이 있으면 JavaScript가 시작되는 인덱스값을 반환
let regExp_search = str.search(/JavaScript/);
console.log(regExp_search);
replace()
let str = "Hello JavaScript Program...";
// str 문자열에서 JavaScript를 찾고 내용을 CSS로 변환하여 str 출력
let regExp_replace = str.replace(/JavaScript/, "CSS");
console.log(regExp_replace);
test()
let str = "Hello JavaScript Program...";
// 정규식 패턴에 대한 문자열 검색. true, false로 반환
let reg3 = /JavaScript/;
let reg4 = /JavaScript2/;
// JavaScript 이 있기 때문에 true 반환
console.log(reg3.test(str));
// JavaScript2는 없기 때문에 false 반환
console.log(reg4.test(str));
플래그 i
let str2 =
"The best program is \n JavaScript... \n Javascript... \n javaScript... \n javascript... ";
// 대소문자를 구분하지 않기 때문에 가장 먼저 나오는 JavaScript 인덱스 출력
let temp1 = /javascript/i;
console.log(str2.match(temp1));
플래그 g
let str2 =
"The best program is \n JavaScript... \n Javascript... \n javaScript... \n javascript... ";
// 일치하는 문자열인 JavaScript를 출력
let temp2 = /JavaScript/g;
console.log(str2.match(temp2));
플래그 m
let str2 =
"The best program is \n JavaScript... \n Javascript... \n javaScript... \n javascript... ";
// javaScript의 인덱스 번호 출력
let temp3 = /javaScript/m;
console.log(str2.match(temp3));
플래그 여러개 사용
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 플래그를 여러개 줄 수 있음
// str3 문자열에서 JavaScript만 찾아냄
let temp4 = /JavaScript/gi;
console.log(str3.match(temp4));
[A-Z]
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// A ~ K 사이의 알파벳을 찾아옴
let temp5 = /[A-K]/gi;
console.log(str3.match(temp5));
[x|y]
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// p,o,z 문자열 만 가져옴
let temp6 = /p|o|z/gi;
console.log(str3.match(temp6));
^문자
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 문자열이 T로 시작하는지 확인하고 T가 맞으면 T 반환
let temp7 = /^T/gi;
console.log(str3.match(temp7));
let temp77 = /^h/gi;
console.log(str3.match(temp77));
문자$
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 문자열이 .으로 끝나는지 확인
let temp8 = /.$/gi;
console.log(str3.match(temp8));
// .으로 끝나지 않아 null 반환
let temp88 = /L$/gi;
console.log(str3.match(temp88));
\w
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 모든 문자열을 1개씩 배열로 출력
let temp9 = /\w/gi;
console.log(str3.match(temp9));
\W
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 공백과 .과 @만 반환됨
let temp10 = /\W/gi;
console.log(str3.match(temp10));
\d
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 문자열에 있는 숫자만 반환됨
let temp11 = /\d/gi;
console.log(str3.match(temp11));
\D
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 숫자를 제외한 나머지 문자열 반환
let temp12 = /\D/gi;
console.log(str3.match(temp12));
\s
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 공백만 반환됨
let temp13 = /\s/gi;
console.log(str3.match(temp13));
\S
let str3 = "The best1 program is2 JavaScript and3 HTML...";
// 공백만 빼고 반환됨
let temp14 = /\S/gi;
console.log(str3.match(temp14));
728x90
'JavaScript' 카테고리의 다른 글
[Javascript] 프로토타입(prototype) 알아보기 (0) | 2023.04.05 |
---|---|
[Javascript] class 알아보기 (0) | 2023.03.31 |
[Javascript] 예외처리문, 재귀함수, promise 객체, asysn와 await (0) | 2023.03.30 |
[Javascript] 생성자 함수, 구조분해할당을 활용한 묵찌빠 게임 만들기 (0) | 2023.03.29 |
[Javascript] 슬라이드 만들기 (0) | 2023.03.27 |