JavaScript로 개발하다 보면 쉼표와 공백이 과도하게 포함된 지저분한 문자열을 정리해야 하는 경우가 자주 있습니다. 예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.
var sentence = "My,,,,,,, Name,,,, is John ,,, Smith";
이처럼 중복된 쉼표와 불필요한 공백이 섞여 있는 문자열을 깔끔하게 정리하려면 정규 표현식(Regular Expression)과 함께 split() 메서드와 join() 메서드를 조합하여 사용하면 됩니다.
핵심 원리
정규 표현식 [\s]+는 하나 이상의 공백 문자(\s) 또는 쉼표(,)가 연속으로 나타나는 패턴을 의미합니다. 이 패턴을 기준으로 split()으로 문자열을 잘라낸 후, join()으로 다시 단일 쉼표를 구분자로 연결하면 중복된 쉼표와 공백이 모두 제거됩니다.
예제 코드
var sentence = "My,,,,,,, Name,,,, is John ,,, Smith";
console.log("쉼표와 공백 제거 전 = " + sentence);
sentence = sentence.split(/[\s]+/).join();
console.log("쉼표와 공백 제거 후 = ");
console.log(sentence)프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
실행 결과
파일 이름이 demo133.js인 경우, 실행 후 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo133.js 쉼표와 공백 제거 전 = My,,,,,,, Name,,,, is John ,,, Smith 쉼표와 공백 제거 후 = My,Name,is,John,Smith
추가 팁: trim() 활용하기
문자열의 맨 앞이나 맨 뒤에 남아 있는 공백까지 완벽하게 처리하고 싶다면, 위 코드에 trim() 메서드를 추가로 활용할 수 있습니다.
var sentence = " My,,,,,,, Name,,,, is John ,,, Smith "; sentence = sentence.trim().split(/[\s]+/).join(); console.log(sentence); // My,Name,is,John,Smith
또한 결과를 배열 형태 그대로 활용하고 싶다면 join() 단계를 생략하면 됩니다. split(/[\s]+/)만 실행하면 ["My", "Name", "is", "John", "Smith"]와 같은 깔끔한 배열을 얻을 수 있어, 이후 데이터 가공 작업에 더욱 유용합니다.