혼자 적어보는 노트

[Javascript] 정규 표현식을 활용한 문자열 다루기 본문

Javascript

[Javascript] 정규 표현식을 활용한 문자열 다루기

jinist 2022. 2. 13. 22:36

 

 

특정 문자 찾기

예시

문자열들 중 영문소문자, 대문자등 조건에 맞는 문자열을 추출할 때

정규표현식 []와 match()를 사용하여 조건에 맞는의 문자를 추출하는 방법과

정규표현식 [^]와 replace()를 사용하여 해당 조건에 맞지 않는 문자를 제외시키는 방법이 있다.

 

const string = "1a2v3...ABC안녕$%(@#ㅎㅎ.";

console.log(string.match(/[a-zA-z]/g).join(""));
// asasF

console.log(string.replace(/[^a-zA-z]/g, ""));
// asasF

// 같은 결과 값을 반환한다.

 

아래의 예시들은 replace로 진행 하겠다.

 

한글만 추출

const string = "1a2v3...ABC안녕$%하(@세요#ㅎㅎ.";

console.log(string.replace(/[^ㄱ-힣]/g, ""));

// 안녕하세요ㅎㅎ

 

영문소문자, 대문자, -, @만 추출

const string = "1a2v3...ABC안녕$%하(@세요#---ㅎㅎ.";

console.log(string.replace(/[^a-zA-Z\-\@]/g, ""));

// avABC@---

특수문자는 \ (역슬래시)를 사용하여 구분한다.

 

반복적인 문자 치환

반복을 표현하는 +으로 반복적인 문자를 변경할 수 있다.

 

2번 이상 띄어쓰기 된 부분 띄어쓰기 1번으로 통일

const string = "안  녕 하    세 요";

console.log(string.replace(/ ( )+/g, " "));

//안 녕 하 세 요

 

const string = "1...2..3...4.5.....6";

console.log(string.replace(/\.+/g, "."));

// 1.2.3.4.5.6

 

문자열 앞 뒤 특정 문자 삭제

문자열 맨 앞이나 맨 뒤에 있는 특정 문자 삭제

맨 앞 ^, 맨 뒤 $, or |

const string = "-안녕하세요-";

console.log(string.replace(/^\-|\-$/g, ""));

// 안녕하세요

const string = "-안녕하세요";

console.log(string.replace(/^\-|\-$/g, ""));

// 안녕하세요

 

 

아무 문자열이 없을 경우 해당 문자열로 변경

const string = "";

console.log(string.replace(/^$/g, "빈 값"));

//빈 값

사실 이 것 때문에 포스팅을 했는데

if문으로 처리를 했던 부분을 위와 같이 처리 할 수 있다.

 

 

Comments