JAVASCRIPT/JSTL

[JavaScript] replaceAll, 왜 없어?

javascript #JS #replaceAll구현 #split #join #소스코드 #레퍼런스 #자바스크립트

안녕하세요, 배곧동개발자 입니다.

프로그래밍을 할 때에 달력이나 전화번호를 사용하며 많이 쓰는 함수가 하나 있지요.

2020-01-01 을 20200101로 바꾼다던가 010-1234-5678을 01012345678 로 바꾼다던가- 이럴때 사용되는 함수, 바로 repalceAll


1. 문제점 : replaceAll이 없다?

그런데말입니다. 이러한 특정 문구를 ‘모두’ 변환 할 때에 많이 쓰이는 replaceAll이 자바스크립트에는 없다는 매우 불편한 사실-

function replaceOnlyNo(){
   var telNo = "010-1234-5678";
   telNo = telNo.replace("-","");
   alert(telNo);
}

​위와 같이 보통의 다른 언어들과 같이 replace를 쓰게 되면 최초 발견되는 하나만 치환해주고 나머지는 그대로 출력이 됩니다-

function replaceOnlyNo(){
   var telNo = "010-1234-5678";
   telNo = telNo.replace("-","").replace("-","");
   alert(telNo)
}

​그래서 이런식으로, 고정된 갯수를 알고 있다면 그 갯수만큼 반복하여 처리하기도 하지요.

하지만, 가변적인 갯수를 치환해야할 때는 좀 짜증이 나지요- for문을 돌린다던가 정규식을 쓴다던가! 왜 없어, replaceAll?


2. 해결방법 : 만들면되지!

개발은 아는만큼 쉬워지지요?(명언명언) 여러 불편함을 이기기 위해 제가 하나 알려드릴까합니다-

function replaceOnlyNo(){
   var telNo = "010-1234-5678";
   telNo = telNo.split("-").join("");
   alert(telNo);
}


바로 split과 join을 이용해서 깔끔- 하게 처리하는 방법이에요.

쨘- 아주 쉽고 간단하게 처리가 되었지요?

간단히 설명해보자면 내가 바꾸고자 하는 문자로 짤라서(split) 배열로 만든 다음, 원하는 문자를 사이에 껴서 합치는(join) 겁니다.


사실상 replaceAll도 누군가가 만든 함수라는거! 우리는 개발자잖아요? 없다면 만들면 됩니다!

보기도 힘들고 복잡시런 정규식 쓰거나 이래도 되나 싶게 for문 돌리시지 마시고 split, join을 이용해서 replaceAll 기능을 구현해보세요-

이만,
배곧동개발자 였습니다.

배곧동개발자

Recent Posts

[세븐나이츠 리버스] 쫄작 가이드 (기초편)

#세븐나이츠리버스 #쫄작 #가이드 #꿀팁 #제이브 그 옛날, 세나를 해보신 분들이라면 모를 수 없으나 이제 세븐나이츠…

3주 ago

[세븐나이츠 리버스] 최신 쿠폰 공유! 쿠폰 입력 방법! (5월15일)

1. 세븐나이츠 리버스 오늘, 2025년 5월 15일에 오픈한 세븐나이츠 리버스! 다들 시작하셨나요? 제이브를 뽑고싶은데 아직…

3주 ago

[CSS] 이미지가 빙빙 돈다? animation spin

#css #spin #animation #spin 1. 이미지가 빙빙돈다! 어? 이게 뭐지? 이미지가 빙빙 돕니다. 나 이거…

1개월 ago

[node.js] npm.ps1 파일을 로드할 수 없습니다

#노드js #nodejs #에러 #오류 #npm 1. npm.ps1 Error node js 를 설치 후 npm을 이용하려…

2개월 ago

[MSSQL] 넓은 영어, 띄어쓰기 영어 입력되는 현상 (전각입력/문자폭)

#MSSQL #문자폭 #영어넓이 #쿼리입력안됨 1. MSSQL 영어 입력 안되는 현상 MSSQL을 주로 쓰고 있는데 MSSMS에서…

3개월 ago

[이미르] 다니아믹 키 확실한 해결방법 (커스텀토큰/접속불가)

#레전드오브이미르 #다이나믹키가다릅니다 #커스텀토큰 #접속불가 #오류 #해결방법 1. 다이나믹 키 더럽다! 유저의 다이나믹키가 다릅니다. 위메이드의 레전드…

3개월 ago