JavaScript - replace에 변수 넣기(RegExp 객체 사용하기)

2021. 3. 11. 15:44JavaScript

반응형

javascript에서 replace를 이용하여 해당하는 모든 문자열을 치환,제거하고자 할 때 정규식을 사용하여 활용하는 경우가 있다.

str = str.replace(/@/g,"");

위 코드는 str 문자열에서 모든 @를 제거한다.

 

위 @ 대신 다른 문자를 유동적으로 받고자 변수를 넣으면 제대로 동작이 안한다.

var letter = "@"
str = str.replace(/letter/g,"");

위 코드는 @대신 letter을 찾아 제거한다.

 

이를 해결하기 위해서 RegExp 객체를 활용한다.

 

해당 객체는 아래와 같이 사용된다.

let regexOne = new RegExp(pattern); // 일치하는 패턴 중 최초 등장하는 패턴 한 번만 찾음
let regexAll = new RegExp(pattern, "g"); // 모든 패턴을 찾음
let regexAllCase = new RegExp(pattern, "gi"); // 대소문자 구분 없이 모든 패턴을 찾음

따라서 아래와 같이 설정하면 변수를 받아서 replace를 적용 가능하다.

 

var letter = "@"
var regexAllCase = new RegExp(letter, "gi")
str = str.replace(regexAllCase,"");
반응형