자바스크립트에서 replace는 query, java 의 replace 와 달리 처음 등장한 딱 한개만 바꿔준다.
아래와 같이 실행하면,
str = "aaabbbaaa";
result = str.replace("aaa", "ccc");
result는 내가 의도한 "cccbbbccc"가 아닌 "cccbbbaaa"가 나온다.
따라서, 원하는 문자열을 모두 바꾸어 주려면 정규식 표현을 사용해야 한다.
str = "aaabbbaaa";
result = str.replace(/a/g, "c");
위의 /a /g 의 의미는 아래와 같다.
/a/ : str 변수의 값 중 'a'라는 문자를
g (완전일치(발생할 모든 pattern에 대한 전역 검색)) str 의 전체 문자열에 대해, 'c'로 변환.
그 외에 다른 플래그는 아래와 같다.
i :
대/소문자 무시, gi :
대/소문자 무시하고 완전 일치