본문 바로가기

프로그래밍

정규표현식 재미있다.

정규표현식을 이용해서 replaceAll과 같은 역할을 하는 함수를 만들었다.

fullStr.replace(/NAY/gi, "RAY"); 를 호출하면 fullStr의 문자중에 "NAY"를 모두 "RAY"로 변경한다.

하지만 내가 구현해야 하는 부분은 치환할 종류가 세가지이다. 고객명, 회사명, 사용자명.

역할은 동일하니까 치환자를 파라미터로 받아서 처리하도록 구현했다.

헉 하지만 /NAY/gi 부분의 NAY를 변수에 저장해서 호출하니까 제대로 동작하지 않는다.

검색해봤더니 정규표현식에서 변수를 사용하려면 반드시 RegExp()를 호출해야 한단다.


1
2
3
4
// fullStr에 있는 모든 searchStr을 replaceStr로 치환
getReplaced:function(fullStr, searchStr, replaceStr) {
          return fullStr.replace(new RegExp(searchStr, "gi"), replaceStr);
}
cs




필요성을 못느끼는 상태에서 정규표현식을 공부 할 때에는 지루하고 재미없고 이해되지 않는 외계어였는데,


필요성을 절실히 느낀 상태에서 정규표현식을 사용하니까 정말 정말 정말 재미있다.


마치 작은 거인을 보는듯하다. 흥미롭다.


오늘 내가 사용한 정규표현식은 새발의 피겠지? 얼마나 신통방통한 기능들이 더 많을지 기대된다.







http://note.redgoose.me/article/708/ 에서 필요한 정보를 잘 얻었다.