javascript에서 $가 포함된 String을 replace 할때 주의점
아래 코드가 IE를 제외한 모든 브라우저에서 동일한 현상이 발행한다.
replace(/abc(d)ef/, "$1"); 의 경우 abcdef 가 d로 바뀌는데 이건 괄호안에 문제를 대치하겟다는 의미가 된다. 그래서 해당 경우도 $를 같은 형태로 해석해서 발생하는 문제로 사료된다.
하지만, 테스트 케이스의 경우엔 앞의 문제가 정규식도 아닌 string이었음에도 뒤에 $를 특수코드로 인지하는건 버그에 속하는게 아닌가 생각이 든다. 딱히 이것은 모두 string이다라고 하는 메서드를 따로 제공하거나 옵션을 줄수 있도록 지원해야 맞을것 같다.
아래 $가 들어간 정규식의 의미를 보자. replace를 쓸땐 아래 코드들을 피해야가야할 것이다.
http://www.regular-expressions.info/refreplace.html
기이한현상.. 왜그럴까요? -_-;
이유는 replace가 뒤에오는 string을 정규식으로 해석을 하려고 해서 발생한 문제다.replace(/abc(d)ef/, "$1"); 의 경우 abcdef 가 d로 바뀌는데 이건 괄호안에 문제를 대치하겟다는 의미가 된다. 그래서 해당 경우도 $를 같은 형태로 해석해서 발생하는 문제로 사료된다.
하지만, 테스트 케이스의 경우엔 앞의 문제가 정규식도 아닌 string이었음에도 뒤에 $를 특수코드로 인지하는건 버그에 속하는게 아닌가 생각이 든다. 딱히 이것은 모두 string이다라고 하는 메서드를 따로 제공하거나 옵션을 줄수 있도록 지원해야 맞을것 같다.
아래 $가 들어간 정규식의 의미를 보자. replace를 쓸땐 아래 코드들을 피해야가야할 것이다.
http://www.regular-expressions.info/refreplace.html
'Web > Client' 카테고리의 다른 글
| javascript에서 $가 포함된 String을 replace 할때 주의점 (0) | 2010/01/18 |
|---|---|
| IE에서만 발생하는 javascript 오류, 잘못된 인수입니다. (0) | 2009/09/24 |
| javascript replaceall의 방법에 따른 처리 속도 비교 (6) | 2009/01/15 |
| 우리나라는 IE6의 비율은 여전히 높다. (1) | 2008/11/20 |
| url 파라메터를 javascript로 받기 (0) | 2008/11/14 |
| 간단한 javascript 페이징 처리 (0) | 2008/11/12 |
- Posted by byuli on 2010/01/18 18:25
- 받은 트랙백이 없고
- 댓글이 없습니다.

