Break Long, Unspaced Strings For Alert

In some browsers, such as Safari 3 and Chrome, passing a long, unspaced string into the alert function will print only 1 line of text, cutting off any part of the string exceeding the alert box width. Most of the time the alert function is used for debugging purposes, and this textual clipping can be make debugging difficult. Here is a simple RegExp that will auto-insert a newline character every 55 characters in a string, before passing the string to the alert method.

Example 1: SpacedAlert Function

spacedAlert: function(s) {
	var str =  + s;

	if (55 < str.length) {
		str = str.replace(/(\S{55})/g, $1\n);
	}

	alert(str);
}

In my personal experience, this has been most useful when checking the serialization of a form before passing it to an AJAX request. Say we have the following serialized form string:

Example 2: A Serialized Form

[email protected]r.com&zipcode=94041&city=mountain+view&browser=firefox

When passed to alert in Safari and Chrome, it will be truncated to:

Example 3: How Safari & Chrome Truncate

username=matt+snider&password=asdf1234&email=mattsnider@

But the spacedAlert function will produce the following alert message:

Example 4: Spaced Alert For A Serialized Form

username=matt+snider&password=asdf1234&email=mattsnider
@mattsnider.com&zipcode=94041&city=mountain+view&browse
r=firefox

Now the developer can easily read the whole string.