TIL-JavaScript(정규표현식,옵션)

연시아·2022년 5월 24일
0

TIL

목록 보기
28/51
post-thumbnail

22.05.24

😲 정규표현식

정규표현식이란, 문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴)입니다. 간단한 문자 검색부터 이메일, 패스워드 검사 등의 복잡한 문자 일치 기능 등을 정규식 패턴으로 빠르게 수행할 수 았습니다. 이 도구를 이용하면 수십줄이 필요한 작업을 한줄로 끝낼 수 있습니다.

😤 정규표현식 리터럴(Literal)

정규표현식의 객체로 / , new RegExp 를 사용합니다.

var pattern = /a/;
var pattern = new RegExp('a');
컴파일을 검출하고자 하는 패턴을 만드는 일입니다. 
객체를 만드는 방법을 두가지가 있는데, a라는 텍스트를 찾아내는 정규표현식을 만드는 방법입니다. 
두가지 모두 같은 결과입니다.
정규표현삭 객체('a') pattern(패턴)이라는 변수에 저장을 하는 것을 의미합니다.

🤨 RegExp 객체의 사용

RegExp 생성자 함수를 호출하여 RegExp 객체를 생성할 수도 있습니다.
정규표현식을 컴파일해서 객체를 만들었다면 이제 문자열에서 원하는 문자를 찾아내야 합니다.

console.log(pattern.exec('abcdef'));          //  ["a"]
실행결과는 문자열 a를 값으로 하는 배열을 리턴합니다.
console.log(pattern.exec('bcdefg'));        //   null
인자 'bcdef'에는 a가 없기 때문에 null을 리턴합니다. 
console.log(pattern.test('abcdef'));       //   true
console.log(pattern.test('bcdef'));       //   false
인자 안에 패턴에 해당되는 문자열이 있으면 true, 없으면 false를 리턴합니다. 

😗 문자열 메소드 실행

String.match()

var pattern = /a/;
var str = 'abcdef';
str.match(pattern);
// ["a"]
var str = 'bcdef';
str.match(pattern);
// [null]
대상에 'a'가 없는 상태에서 match를 하게 되면 null이 됩니다. 

String replace()

문자열에서 패턴을 검색해서 이를 변경한 후에 변경된 값을 리턴합니다.

var str = 'abcdef';
str.replace(pattern, 'A');
// [Abcdef]
이 문자열에서 패턴에 해당되는 것 'A'를 찾아서 대문자 'A' 를 바꾸게 된 것입니다. 

🤩 옵션

i(ignoreCase) 플래그

영어 대소문자를 구분하지 않겠다라는 의미입니다.
ig를 같이 사용하게 되면 대소문자 구분없아 표현식의 모든 검색결과를 배열로 반환합니다.

var oi = /a/i;
"Abcde".match(oi);
// ["A"]

g(global) 플래그

모든 문자를 검색하겠다라는 의미입니다.
g가 있는 표현식은 모든 검색 결과를 배열로 반환합니다.

var xg = /a/;
"abcdea".match(xg);
// ["a"]
두개의 있는 a를 하나로만 검출되서 나옵니다.
var og = /a/g;
"abcdea".match(og);
//["a","a"]
이 문자열에 포함되어 있는 패턴에 해당되는 문자열을 전부 다 배열해서 리턴해줍니다. 
profile
backend developer

0개의 댓글