JavaScript에는 replace라는 함수가 있지만 replaceAll이 없어 불편을 겪을 때가 있다.
물론 [문자열].replace([정규식], [치환될 문자열])이라는 것을 알고 있으면 replace 함수만으로 충분히 replaceAll의 기능을 사용할 수 있다.
var str = 'Hello JavaScript!';
str = str.replace(/a/g, 'i');
결과 : str = 'Hello JiviScript!
replaceAll을 함수로 사용하고 싶을 때는 아래와 같은 함수를 사용하면 된다.
1. 대소문자를 구별하며 모든 문자를 치환
/**
* (대소문자 구분 있이) 문자열을 원하는 문자열로 치환합니다
* @param str 치환할 문자열
* @param searchStr 치환하고 싶은 문자열
* @param replaceStr 치환될 문자열
* @return 치환이 완료된 문자열
*/
function replaceAll(str, searchStr, replaceStr) {
return str.split(searchStr).join(replaceStr);
}
2. 대소문자를 구별하지 않으며 모든 문자를 치환
/**
* (대소문자 구분 없이) 문자열을 원하는 문자열로 치환합니다
* 단, 특수문자 치환은 불가능합니다
* @param str 치환할 문자열
* @param searchStr 치환하고 싶은 문자열
* @param replaceStr 치환될 문자열
* @return 치환이 완료된 문자열
*/
function replaceAllIgnoreCase(str, searchStr, replaceStr) {
var reg = new RegExp(searchStr , 'gi');
return str.replace(reg,replaceStr);
}