C#’s String.Format For JavaScript

JavaScript/Ajax Add comments

As a .Net Programmer I enjoy using String.Format frequently when working with strings, particularly in SQL statements. Now I don’t work with SQL in JavaScript but there are still plenty of times that I wish I could just whip out my handy dandy String.Format but sadly JavaScript does support this function…what’s that you say?…it does now?

I decided enough was enough and I extended the String object to include my beloved String.Format.

String.js

function _StringFormatInline()
{
	var txt = this;
	for(var i=0;i<arguments.length;i++)
	{
		var exp = new RegExp('\\{' + (i) + '\\}','gm');
		txt = txt.replace(exp,arguments[i]);
	}
	return txt;
}

function _StringFormatStatic()
{
	for(var i=1;i<arguments.length;i++)
	{
		var exp = new RegExp('\\{' + (i-1) + '\\}','gm');
		arguments[0] = arguments[0].replace(exp,arguments[i]);
	}
	return arguments[0];
}

if(!String.prototype.format)
{
	String.prototype.format = _StringFormatInline;
}

if(!String.format)
{
	String.format = _StringFormatStatic;
}

I have given this feature 2 flavors; inline and static. For all you C#ers you know what a static method is, and inline, well I’ll just show you. Now you can do either of these:

Static

var str = String.format("This is a {0} string using the {1} method.","formatted","static");

Inline

var str = "This is a {0} string using the {1} method.".format("formatted","inline");

And a nice little sample page would go like this.

<html>
<head>
	<title>String Extend</title>
	<script src="String.js"></script>
	<script>

		var str = String.format("This is {0} story about {0} {1}.","my","dog");
		var str2 = "I have 2 friends, {0} and {1}.".format("Doug","Jane");
		alert(str + "\n\n" + str2);

	</script>
</head>
<body>
</body>
</html>

Enjoy!

Popularity: 7% [?]

If you liked this article consider subscribing to my free rss article feed to automatically get new articles in your feed reader.

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Login