0)
이전에 String.replace() 를 개조해서,
스트링 변환을 조정하도록 했는데요,

1)
이번에는 스트링의 경우에는 'gi' 옵션을,
RegExp 의 경우에는 그대로 적용하도록 조정해봤습니다.

*참고*
String.replace()]...를 여러번 쓰려던 함수 하나...
http://killofki.tistory.com/53 

..

2)

<script>

(function(){
  var
    replaceAppendAll='replaceAppendAll130917'
    , replace='replace'
    , length='length'
    , compile='compile'
    , stringgi='gi'
    , rReg=new RegExp('', stringgi)
    ;
  String.prototype[replaceAppendAll]=function(){
    var i, ar=arguments, arl=ar[length], ov=this+'';

    for (i=0; i<arl; i+=2) {
      if (ar[i] instanceof RegExp) {
        ov=ov[replace](ar[i], ar[i+1]);
        }
        else {
           rReg[compile](ar[i], stringgi);
           ov=ov[replace](rReg, ar[i+1]);
          }
      }

    return ov;
    }
})();

</script>

<div id=output130917_1></div>

<script>
(function(){
  var
    replaceAppendAll='replaceAppendAll130917'
    , output=document.getElementById('output130917_1')
    ;

  output.innerHTML='helloo'[replaceAppendAll]('h', 'H', 'o', 'O', /l/, 'L');

})();
</script>


-- 새 창에 보여주기.. --

..

3)




..

4)
L 과 O 가 두번씩 있는데,
L 은 한번(/l/ 에 따라서..), 그리고 O 는 두번('o'가 RegExp 가 아니라서..) 적용되었죠.

딱 그만큼을 위한 함수개조입니다.
여러가지 쓰다보니, 그런 부분도 필요하게 되더라구요.

5)
.. 이 외에, 이전 버전(?)과는 기능구현 외에 다른 점이라면,

String.prototype 을 썼다는 것과,
(function(){ })(); 에 함수명들을 많이 묶었다는 점 정도랄까요..

나중에 스크립트 최적화를 했을 때
압축도 가능해서 쓰기 좋아지거든요..

.. 뭐, 한참 나중을 위해서이니,
코드가 너무 커지면 그때쯤 구현해보시길 바랍니다.

wantHate killofki@.

Posted by killofki
,