libs/web: make JS String.format() and String.serialize() available as prototype options, introduce String.nobr()

This commit is contained in:
Jo-Philipp Wich 2012-12-02 14:20:36 +00:00
parent ec1b06c266
commit 564ca0accd

View file

@ -1097,9 +1097,9 @@ function cbi_tag_last(container)
}
}
if( ! String.serialize )
String.serialize = function(o)
String.prototype.serialize = function()
{
var o = this;
switch(typeof(o))
{
case 'object':
@ -1149,11 +1149,9 @@ if( ! String.serialize )
}
}
if( ! String.format )
String.format = function()
String.prototype.format = function()
{
if (!arguments || arguments.length < 1 || !RegExp)
if (!RegExp)
return;
var html_esc = [/&/g, '&#38;', /"/g, '&#34;', /'/g, '&#39;', /</g, '&#60;', />/g, '&#62;'];
@ -1165,7 +1163,7 @@ if( ! String.format )
return s;
}
var str = arguments[0];
var str = this;
var out = '';
var re = /^(([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|q|h|j|t|m))/;
var a = b = [], numSubstitutions = 0, numMatches = 0;
@ -1184,9 +1182,9 @@ if( ! String.format )
}
else
{
if (numSubstitutions++ < arguments.length)
if (numSubstitutions < arguments.length)
{
var param = arguments[numSubstitutions];
var param = arguments[numSubstitutions++];
var pad = '';
if (pPad && pPad.substr(0,1) == "'")
@ -1310,3 +1308,32 @@ if( ! String.format )
return out + str;
}
String.prototype.nobr = function()
{
return this.replace(/[\s\n]+/g, '&#160;');
}
String.serialize = function()
{
var a = [ ];
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
return ''.serialize.apply(arguments[0], a);
}
String.format = function()
{
var a = [ ];
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
return ''.format.apply(arguments[0], a);
}
String.nobr = function()
{
var a = [ ];
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
return ''.nobr.apply(arguments[0], a);
}