📌 Javascript 내장 기능 중 replaceAll()은 없다고 생각하는 것이 좋다. ECMA-262 12th(2021) 스펙을 기준으로 replaceAll() 기능이 추가되었기 때문에 최신을 바탕으로 하는 개발 환경이 아니라면 replaceAll()을 사용하기가 어렵다.
let str = 'Hello word, Java';
str = str.replace('Java, Javascript');
console.log(str);
💡 결과
Hello world, Javascript
📌 바꾸려는 문자열이 여러개가 있어도, 가장 먼저 찾은 첫번째 문자열만 변환된다.
let str = 'Hello word, Java, Java, Java';
str = str.replace('Java, Javascript');
console.log(str);
💡 결과
Hello world, Javascript, Java, Java
📌 바꾸려는 문자열이 여러개 있고, 모든 문자열을 바꾸고 싶을 때 정규식을 이용하면 모든 문자열을 변경할 수 있다. 정규식은 /Pattern/flag 형태로 구성되고, 찾으려는 문자열에 따옴표를 입력하지 않는다.
let str = 'Hello world, Java, Java, Java';
str = str.replace(/Java/g, 'Javascript');
console.log(str);
💡 결과
Hello world, Javascript, Javascript, Javascript
📌 대소문자를 구분하지 않고 문자열을 치환하고 싶으면 flag에 i를 추가한다.
let str = 'Hello world, Java, java, JAVA';
str = str.replace(/java/gi, 'Javascript');
console.log(str);
💡 결과
Hello world, Javascript, Javascript, Javascript
📌 문자열에 있는 모든 숫자를 제거하고 싶을 때 숫자를 빈 문자열로 치환하면 된다. [0-9]는 0부터 9까지의 숫자를 의미한다.
let str = 'Ja012va345scr67ipt89';
str = str.replace(/[1-9]/g, '');
console.log(str);
💡 결과
Javascript
📌 반대로 숫자를 제외한 문자열을 치환하고 싶을 때 캐럿(^)을 사용한다. 캐럿은 !(Not)과 비슷하다. [^0-9]은 숫자를 제외한 문자열 (a-z, A-Z)가 해당된다.
let str = 'Ja012va345scr67ipt89';
str = str.replace(/[^1-9]/g, '');
console.log(str);
💡 결과
0132456789