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@.
'string' 카테고리의 다른 글
html구조]..를 단순화해봤습니다. (0) | 2013.12.06 |
---|---|
inc] 스트링 값을 덧셈해봅니다. (0) | 2013.11.28 |
string to array] 부스번호 리스트 만들기.. (0) | 2013.06.09 |
RegExp] 태그 범위를 받아봅니다. (0) | 2013.06.06 |
tag] html 소스 태그 삭제용 스크립트.. (for IE8) (0) | 2012.11.20 |