정규표현식
정규표현식 정의 방법 2가지
- RegExp객체를 이용한 생성
let 객체명 = new RegExp('정규표현식'[,'flag']) - 정규 표현식 리터럴을 이용한 생성
let 객체명 = /정규표현식/[flag]
### pattern.test("문자")메소드
- 정규식 문자열이 일치하는지 뜻하는 논리값 반환
let reg = /cat/; console.log(reg.test("cat")); console.log(reg.test("cat and dogs")); console.log(reg.test("Cat")); console.log(reg.test("dog and cat"));
### "문자".match(pattern) 메소드 - 첫번째 받은 정규표현식으로 일치하는 문자열을 순서대로 저장해서 배열로 반환
- 일치하는 값 없으면 null 반환
let str = "1 little, 2 little indian"; let result = str.match(/\d+/g); console.log(result.length); console.log(result[0]+","+result[1]);
str = "one little, two little indian";
result = str.match(/\d+/g);
console.log(result);
<br>
### pattenrn.exec("문자")메소드
- 정규표현식돠 일치하는 문자열을 검색하여 일치한 문자열을 배열로 반환
- 일치하는 문자열을 찾지 못했을 때는 null반환
``` javascript
reg = /Script/g;
result = reg.exec("JavaScript Script");
console.log("/Script/g result.length: "+result.length);
reg = /(Script)/g;
result = reg.exec("JavaScript Script");
console.log("/(Script)/g result.length: "+result.length);
### "문자".search(pattern) 메소드 - 문자열이 String으로 매치될때 : 문자열 중에서 매개변수와 매치되는 첫 변째 문자열의 시작index값 - String과 매치 되지 않을때 : 매치되는 문자열이 없을 때는 -1을 리턴한다.
### replace
### 메정규 표현식의 메타 문자 - 문자열의 패턴을 나타내는 문자열 - 문자마다 지정된 특별한 뜻이 담겨있다.
a (일반문자열) : 문자열 내에 a라는 문자열이 존재하는지 검색
[abcd] : 문자열 내에 a,b,c,d 중에 하나라도 일치하는 문자가 있는지 검색
^(캐럿) : 문자열의 시작을 의미
$ : 문자열의 끝을 의미
\w (word, 단어) : 아무 글자 (단, 띄어쓰기, 특수문자, 한글 X)
\d (digit, 숫자) : 아무 숫자(0~9 중 하나)
\s (space, 공간) : 아무 공백 문자(띄어쓰기, 엔터, 탭 등)
[0-9] : 0부터 9까지 모든 숫자
[ㄱ-힣] : ㄱ부터 힣까지 모든 한글
[a-z] : 모든 영어 소문자
[A-Z] : 모든 영어 대문자
특수문자의 경우 각각을 입력하는 방법밖엔 없음
단, 메타문자와 중복되는 특수문자는
앞에 (백슬래시)를 추가하여 escape로 만들어 사용수량 관련 메타 문자
a{5} : a문자가 5개 존재 == aaaaa
a{2,5} : a가 2개 이상 5개 이하 == aa, aaa, aaaa, aaaaa
a{2,} : a가 2개 이상: 0개 이상 == 0번 이상 반복 == 있어도 되고, 없어도 되고
: 1개 이상 == 1번 이상 반복
? : 0개 또는 1개
. : 1칸 (개행문자를 제외한 문자 하나)
'아줌마의 국비학원생활' 카테고리의 다른 글
[34일차][javascript] JSON (0) | 2023.06.05 |
---|---|
[33일차][javascript] 사용자 정의 객체 (0) | 2023.06.02 |
[23][24][25][26][27][28][29][30][31] html,css,javascript 수업중 (0) | 2023.05.18 |
[22일차] 시험 - 내용없음 (0) | 2023.05.18 |
[21일차] 네트워크 프로그래밍 구현 (0) | 2023.05.16 |