서울땅콩의 취미생활

문제점

자바스크립트에서 replaceAll을 하면 존재하지 않는 함수라고 오류를 뱉어낸다.

Internet Explorer에서 문제가 되는 것으로 보인다.

 

예를 들자면 다음과 같다.

"aaa aaa aaa aaa".replaceAll(" ", ".")

replaceAll함수를 이용하여 결과가 aaa.aaa.aaa.aaa 출력되기를 기대하였다.

 

하지만 오류를 뱉어내었다.

 

 

두둥....

개체가 replaceAll 속성이나 메소드를 지원하지 않습니다.

Explorer 정말 놀랍다.

 

해결

그래서 자바스크립트에서 replace를 replaceAll처럼 사용해야 하는데 간단히 정규식으로 해결이 된다.

 

[정규식 이용해서 gi 로 감싸기]

// #를 감싼 따옴표를 슬래시로 대체하고 뒤에 gi 를 붙이면 
// replaceAll 과 같은 결과를 볼 수 있다.
str.replace(/#/gi, "");

 

정규식 설명

[정규식의 gi 설명]

g : 발생할 모든 pattern에 대한 전역 검색

i : 대/소문자 구분 안함

m : 여러 줄 검색 (참고)

 

위와 같이 소스를 수정한다면 replace를 replaceAll처럼 사용할 수 있다.

 

그럼 마지막으로 테스트 결과를 살펴보자.

"aaa aaa aaa aaa".replace(/#/gi, ".");

 

결과

aaa.aaa.aaa.aaa

 

'Fullstack개발 > JavaScript' 카테고리의 다른 글

fetch API를 이용하여 REST API 호출  (0) 2021.07.27
[Jquery] Selector 모음  (0) 2020.07.14

공유하기

facebook twitter kakaoTalk kakaostory naver band