문자열에서 특정 문자를 모두 제거하는 방법을 소개합니다.

예를 들어, 문자열에서 어떤 특수문자를 모두 제거하거나, 숫자나 어떤 문자를 모두 제거해야하는 경우가 있을 수 있습니다. 예제를 통해 알아보겠습니다.

1. replace()를 이용한 방법

replaceAll(str, repl)은 문자열에서 str을 모두 repl로 변경합니다.

이것을 이용하여, 아래 예제처럼 특정 문자를 빈 문자열 ""로 모두 변환하여 제거할 수 있습니다.

let str = "Hello! World!";
let newStr = str.replaceAll("!", "");
console.log(newStr);

Output:

Hello World

str.replace(str, repl)은 문자열에서 가장 먼저 찾은 str을 repl로 1회만 변경합니다. 모든 문자를 변경하려면 replaceAll()을 사용해야 합니다.

2. 정규표현식을 이용한 방법

replace(pattern, repl)은 정규식 패턴에 일치하는 문자열을 찾고, repl로 변환합니다.

이것을 이용하여, 아래와 같이 특정 문자를 모두 찾는 정규식 패턴을 만들고, ""로 변환하여 제거합니다.

  • /!/g : 정규식은 /pattern/flags로 나타내며, pattern에서 사용한 !는 찾으려는 문자열이고, flags의 g는 패턴과 일치하는 문자열을 모두 찾으라는 의미
  • 다른 문자를 제거하려면 /특정문자/g 처럼 패턴을 만들면 됨
let str = "Hello! World!";
let pattern = /!/g; // '!' 문자를 모두 찾음
let newStr = str.replace(pattern, "");
console.log(newStr);

Output:

Hello World

위 예제에서 replace() 대신에 replaceAll()을 사용해도 됩니다. replace()로 모든 문자를 제거할 수 있었던 이유는, 패턴의 flags에 모두 찾으라는 의미의 ‘g’를 사용하였기 때문입니다.

3. for문을 이용한 방법

for문으로 문자열의 모든 문자를 순회하면서, 특정 문자만 제외하고 나머지 문자를 다시 조합하면, 특정 문자만 제거한 문자열을 만들 수 있습니다.

let str = "Hello! World!";
let newStr = "";

for (let i = 0; i < str.length; i++) {
  if (str[i] !== "!") {
    newStr += str[i];
  }
}
console.log(newStr);

Output:

Hello World