Here is the template manipulating class in javascript. There are 2 methods present in this class for doing the same thing but in 2 different ways. Based on requirement or comfort-level, the particular method can be chosen.
/*
@file CTemplator.js
@author Abhishek Kumar
@email akbittu@gmail.com
*/
// Class
var CTemplator = {
fitIn1: function (template, hashtable) {
var key, tag, output = template;
for (key in hashtable) {
tag = "[" + key + "]";
output = output.replace(tag, hashtable[key]);
}
return output
},
fitIn2: function (template, arglist) {
var output = template;
for (var i = 0; i < arglist.length; i++) {
output = output.replace(new RegExp('@' + i, 'g'), arglist[i]);
}
return output;
}
}
// Usage
CTemplator.fitIn1('<a href="#[Link]" title="[Title]">[Content]</a>', {
Link:'test1.html',
Title:'Test1',
Content:'Test1'
});
CTemplator.fitIn1('<a href="#[Link]" title="[Content]">[Content]</a>', {
Link:'test1.html',
Content:'Test1'
});
CTemplator.fitIn2('<a href="#@0" title="@1">@1</a>', ['test1.html', 'Test1']);
CTemplator.fitIn2('<a href="#@0" title="@2">@1</a>', ['test1.html', 'Test1', 'Test1']);
There are 4 examples provided above to describe different scenarios:- The first example shows that the hash-array-map like object has been used for mapping each keyword present in the template.
- The second example shows that there could be multiple occurrence of particular keyword that would get replaced by same value which is mapped in the object.
- The third example shows that instead of using hash-map, we can also use simple array like list where the keyword is mapped with index of the provided argument array.
- The fourth example shows the multiple occurrence of particular keyword and their mapped values in the list.
Comments
Post a Comment