2월 23, 2024

[Javascript] replace 정규식/ gi 옵션/ 띄어쓰기를 %로 치환하기

javascript에서 정규식을 사용하여 특정 패턴을 replace하는 방법에 대해 알아보자

1. replace와 정규식 함께 사용하기


("문자열").replace(/정규표현식/, "대체문자열") 

replace 함수와 정규식은 위와 같이 사용할 수 있다. 
그리고 /정규표현식/ 뒤에 정규식 옵션을 추가할 수 있다.

2. replace 함수에서 정규식 옵션 추가하기


원래 javascript에서 replace() 함수는 문자열에서 변경하려는 문자열 패턴이 여러번 반복되는 경우
첫 번쨰로 발견될 문자열만 치환해준다.

하지만 여기에 g라는 옵션을 붙이면 발생한 모든 패턴에 대하여 전역으로 검색을 해준다. 

정규식 옵션은 아래와 같이 정리할 수 있다. 

1) g: 해당 패턴으로 발생한 문자열을 전역 검색한다.
2) i: 대소문자 구분 없이 검색
3) m: 모든 줄을 검색

따라서 정규식에서는 특히나 gi를 많이 사용하는데,
전체 문자에서 대소문자 구분 없이 변경한다는 옵션을 뜻한다. 


3. (예시) 띄어쓰기 기준으로 substring으로 검색이 되도록 만들기 (띄어쓰기를 % 로 치환하기)


예를 들어 "APP BAN" 이라는 string으로 검색하면 APPLE KIWI BANANA 라는 string도 검색되게 만들고 싶다면 어떻게 작성할 수 있을까? 
일단 query 등 backend에서 검색을 하기 위해서 단어별로 %가 들어가야 하고 like 검색으로 잡아와야 하기 떄문에

자바스크립트에서는 띄어쓰기를 %로 치환해주어야 한다. 

그렇게 하기 위해서는 
replace(/ /gi, "%") 

이런 식으로 변경할 수 있다. 빈칸을 %로 검색하여 backend에서 단어 기준으로 like 검색을 하겠다는 것이다.