replace()
메서드의 새로운 기능을 알게되어 블로그에 기록을 한다.우선 MDN에서 String.prototype.replace()
를 살펴보자.
replace()
구문var newStr = str.replace(regexp | substr, newSubstr | function)
replace()
의 첫 번째 인자로 정규 표현식으로 숫자들을 찾는다. (정규 표현식의 플래그로 글로벌이 오는 경우에는 일치하는 문자열을 찾을때 마다 함수가 호출된다.)특정 문자열에서 짝수를 @로 바꾸는 예제
// 문자열 생성
const str = '1, 4, 5, 6에서 짝수를 골뱅이로 바꾸고 싶다.';
// replace()에 넣을 모든 숫자를 찾는 정규 표현식 생성
const findAllNumber = /\d/g;
// 두 번째 인자로 넣을 정규 표현식으로 찾은 숫자 중
// 짝수는 @로 바꾸고, 홀수는 놔둠
const changeEvenNumber = number => {
// number는 string형식이기 때문에 number형식으로 바꿔준다.
number = parseInt(number, 10);
// 짝수면 @로 홀수면 그대로 리턴
return number % 2 === 0 ? '@' : number;
};
const newStr = str.replace(findAllNumber, changeEvenNumber);
console.log(newStr) // '1, @, 5, @에서 짝수를 골뱅이로 바꾸고 싶다.'