문자열에서 특수문자, 한글만 제거하는 방법에 대해서 알아보겠습니다. 또는, 특수문자와 한글 모두 제거하는 방법도 알아보겠습니다.

1. 문자열에서 특수문자만 제거

replace(pattern, repl)은 문자열에서 패턴에 일치하는 문자열을 찾고 repl로 교체합니다.

  • [!@#$%^&*()_+{}\[\]:;<>,.?~\\/\-=|"'] : 특수문자에 대한 정규표현식
  • /pattern/g : g는 패턴과 일치하는 모든 문자열을 찾으라는 의미
  • str.replace(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\/\-=|"']/g, "") : 특수문자를 모두 찾아서 ""으로 변경하여 제거

아래와 같이 문자열에서 특수문자만 제거합니다.

let str = "Hello, World! This is an example string.";

let result = str.replace(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\/\-=|"']/g, "");

console.log(result);

Output:

Hello World This is an example string

2. 문자열에서 한글만 제거

replace(pattern, repl)으로 한글만 제거할 수 있습니다. 아래 처럼 한글에 대한 패턴을 만들고, 한글을 찾아 제거합니다.

  • [ㄱ-ㅎ|ㅏ-ㅣ|가-힣] : 한글에 대한 정규표현식
  • /pattern/g : g는 패턴과 일치하는 모든 문자열을 찾으라는 의미
  • str.replace(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g, "") : 한글을 모두 찾아서 ""으로 변경하여 제거
let str = "Hello, World! 안녕.. 자바스크립트..";

let result = str.replace(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g, "");

console.log(result);

Output:

Hello, World! .. ..

3. 문자열에서 한글과 특수문자 모두 제거

한글과 특수문자의 패턴을 함께 사용하여 모두 제거할 수도 있습니다.

  • [ㄱ-ㅎ|ㅏ-ㅣ|가-힣]|[!@#$%^&*()_+{}\[\]:;<>,.?~\\/\-=|"'] : |는 or의 의미로 사용되며, 두개의 패턴(한글과 특수문자)을 함께 적용하였습니다.
let str = "Hello, World! 안녕$ #자바스크립트..";

let result = str.replace(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]|[!@#$%^&*()_+{}\[\]:;<>,.?~\\/\-=|"']/g, "");

console.log(result);

Output:

Hello World