정규표현식

lee jae hwan·2022년 9월 28일

javascript

목록 보기
105/107

정규표현식은 객체이기때문에 test, exec등의 메소드를 사용할 수 있다.

const re = /ab+c/;

리터럴 정규표현식으로 패턴이 고정일때 사용하며 이것도 객체다.

let reg = 'ab+c';
const re = new RegExp(reg);

패턴이 변수일때는 정규표현식 객체를 생성하는 생성자함수를 사용해야 한다.

패턴식이 /abc/라면 어떤 문자열에 abc문자열이 있는지를 정규표현식으로 검사할 수 있다.

const re = /abc/;
const ret = re.test('sdkjabcsfskl');  // true

문자열에 abc가 있으므로 true를 반환한다.

const ret = re.exec('sdkjabcsfskl'); 
['abc', index: 4, input: 'sdkjabcsfskl', groups: undefined]

객체를 반환한다.


Quantifiers +, *, ? and {n}

/\d{5}/ 숫자갯수가 5개인 패턴 12345
/\d{3,5}/ 숫자갯수가 3~5개인 패턴 123, 12345
/\d{1,}/ 숫자갯수가 1개이상일때


+는 {1,}의 속기형이다. /\d+/ 은 /\d{1,}/와 같다.

?은 {0,1}의 속기형이다
/\d?/ 은 /\d{0,1}/와 같다.

은 {0,}의 속기형이다.
/\d
/ 은 /\d{0,}/와 같다.


^는 시작기호
/^\d/ 숫자로 시작해야한다.

는끝기호/\d는 끝기호 /\d/ 숫자로 끝나야한다.


<input type="text" [(ngModel)]="firstName" #firstNameFC="ngModel"  pattern="[a-zA-Z]{1}[a-zA-Z0-9]*">

pattern은 ngModel이 지원하는 유효성조건이며 해당 조건을 만족하지 않으면 객체를 반환한다.

pattern으로 문자열에 admin이 없어야 하는 조건을 만들 수 없기때문에 커스텀유효성검사로 한다.

0개의 댓글