2017년 4월 18일 화요일

javascript Sting format bind

javascript 에서 Object String format {aaa} 조건에 맞게 bind 한다.


"{aaa} 에서 {bbb} 까지 이동 하는데 걸리는 시간은 {ccc} 이다".bind({
                                                                                        aaa: '종로',
                                                                                        bbb: '광화문',
                                                                                        ccc: '10분'
                                                                                 })

인자 중 remove 위치의 값이 false 일 경우 매칭이 되지 않는 값은 삭제 하지 않는다.

기본 값은 true 이며 없을 경우 삭제된다.

String.prototype.bind = function(obj, remove) {
var argobj = obj;
var remove = remove !== false;
return this.replace(/\{\{|\}\}|\{(\w+)\}/g, function(m, n) {
if (m == "{{") {
return "{";
}
if (m == "}}") {
return "}";
}
return typeof argobj[n] == "undefined" ? ((remove) ? '' : m)
: typeof argobj[n] == 'function' ? argobj[n]()
: argobj[n];
});
}

bind 에 대입되는 object 에서 function 값도 처리 될 수 있게 되어 있다.

더 생각 하기 싫어서 그냥 여기까지만 쓴다.

댓글 없음:

댓글 쓰기