아줌마의 국비학원생활

[32일차] form 유효성 체크

citygray 2023. 6. 1. 17:54

정규표현식

정규표현식 정의 방법 2가지

  1. RegExp객체를 이용한 생성
    let 객체명 = new RegExp('정규표현식'[,'flag'])
  2. 정규 표현식 리터럴을 이용한 생성
    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칸 (개행문자를 제외한 문자 하나)