어제 오늘 내일

[Javascript] 모든 문자열 치환하기 (replace, replaceAll) 본문

IT/Javascript

[Javascript] 모든 문자열 치환하기 (replace, replaceAll)

hi.anna 2020. 5. 6. 00:06

Javascript에서 문자열을 치환하기 위해서 replace() 함수를 사용하는 방법을 알아보았습니다.

 

그런데, replace() 함수는

문자열에서 변경하려는 문자열이 여러 번 반복될 경우,

첫 번째로 발견한 문자열만 치환해 줍니다.

즉, 'apple, banana, banana' 이렇게 'banana'가 여러 번 반복될 경우

replacT('banana', 'tomato')를 실행하면 첫번째로 발견된 'banana'만 치환되어

'apple, tomato, banana'의 결과를 얻게 됩니다.

[Javascript] 문자열에서 특정 문자열 치환하기 (replace)

 

이번에는, 문자열 내에서 찾아낸

모든 문자열(변경하려는)을 치환하는 방법을 알아보도록 하겠습니다.

 

간단하게 replactAll() 이라는 함수가 있다면 좋겠지만,

불행하게도 Javascript에는 replaceAll() 이라는 함수는 없습니다.

 

 

모든 문자열 치환하기

See the Pen replace by anna (@hianna) on CodePen.

대소문자 구분없이 문자열을 변경했던 것과 마찬가지로

정규식(regular expression)을 사용하였습니다.

정규식으로 찾으려는 문자열은 '/'로 감싸서, 파라미터로 들어가는 값이 정규식 임을 알려줍니다.

그리고, '/' 뒤에는 'g'라는 modifier를 붙여주었습니다.

g는 'global match'라는 의미로 사용되었습니다.



대소문자 구분없이 모든 문자열 치환

그렇다면 대소문자 구분도 하지 않고, 모든 문자열을 치환하려면 어떻게 해야할까요?

See the Pen replace by anna (@hianna) on CodePen.

대소문자 구분없이 문자열을 치환하기 위해서는

'i' modifier를 사용했기 때문에,

[Javascript] replace() 함수 사용하여 대소문자 구분 없이 치환하기

'i'와 'g' modifier를 위 예제와 같이 함께 적어주면 됩니다.

 

 

replace 함수와 정규식(regular expression)을 사용하여

대소문자 구분없이, 모든 문자열을 치환하는 방법을 알아보았습니다.

반응형
Comments