Topic: Message Format |
|
|---|---|
| Author | Thread |
|
Neurotic (0) Inmate Newly admitted From: |
posted 11-28-2006 08:52
code: /**
* The following function will help to format messages in the client side.
* Usage:
* var s = "My name is {0}.\n\rI like {1}";
* alert(MessageFormat(s,"Yossi","JavaScript"));
*/
function StringFormatter(){
}
StringFormatter.prototype.format = function(str) {
var i = 1;
while(i < arguments.length){
var delimiter = "{" + (i-1) + "}";
var pos = str.indexOf(delimiter);
if(pos > -1){
var s = str.substring(0, pos) + arguments[i];
str = s + str.substring(pos + delimiter.length, str.length);
}
i++;
}
return str;
}
var MessageFormat = new StringFormatter();
|
|
Paranoid (IV) Inmate From: Norway |
posted 11-28-2006 09:14
Why not using a RegExp ? this way you can use the {index} several times. code: StringFormatter.prototype.format = function( str )
{
var i=0;
while( ++i<arguments.length )
str = str.replace( new RegExp( '{'+(i-1)+'}', 'g' ), arguments[i] );
return str;
}Also the usage seems to be: code: var s = "His name is {0}.\n\rHe likes {1}.\n\r{2} also like {1}.";
alert( MessageFormat.format(s,"Yossi","JavaScript","p01"));
|
|
Nervous Wreck (II) Inmate From: |
posted 11-28-2006 11:04
I agree |