Deutism

쫄깃한 웹 표준!

String.replace(“a”,”b”) 은 a 를 한번만 찾아요;

자바스크립트에서 문자열에서 “a” 가 나오면 “b“로 교체해주는 함수가 바로 replace()인데;
이 자식은 한번만 딸랑 바꿔주더라는!!
그걸 해결 하려면 정규식을 사용 하거나 “a“가 안나올때까지 반복해서 replace 해주는 프로토타입 함수를 만들어서 사용 정규식의 내부 로직은 모르겠으나 정규식 쓰는게 나아 보인다;
정규식을 사용해 보면

String.replace(/(a)/ig,“b”);

replaceAll이라는 프로토타입 함수를 만들면

String.prototype.replaceAll = function( str, replacements )
{
    var temp = this;
    while( temp.indexOf( str ) != -1 )
        temp = temp.replace( str, replacements );
    return temp;
}

이렇게 사용할수도 있죠잉
이런 초보적인 것도 모르면서 자바스크립트 하는 불쌍한 나같은 놈도 있으니 낙담말고 다들 열심히 삽시다;

  • 단 한개의 답글이 있습니다.
  • 이 포스트의 코멘트를 RSS feed로 봅니다..
  1. rootbox 님의 답글입니다.
    May 16, 2008 9:29 am

    아~~~주 어렴풋한 기억으론
    정규식을 사용하는 것보다 replaceAll 함수를 만들어서 하는게 더 나은 퍼포먼스를 냈던것으로 기억이 나는데..
    혹 퍼포먼스 테스트 해보셨다면 알려주세요~

    Reply