IT/자바스크립트

[JavaScript]replaceAll 함수 만들기

D아노말리 2021. 5. 14. 09:54

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);
}