New file |
0,0 → 1,79 |
if(!dojo._hasResource["dojo.string"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. |
dojo._hasResource["dojo.string"] = true; |
dojo.provide("dojo.string"); |
|
dojo.string.pad = function(/*String*/text, /*int*/size, /*String?*/ch, /*boolean?*/end){ |
// summary: |
// Pad a string to guarantee that it is at least 'size' length by |
// filling with the character 'c' at either the start or end of the |
// string. Pads at the start, by default. |
// text: the string to pad |
// size: length to provide padding |
// ch: character to pad, defaults to '0' |
// end: adds padding at the end if true, otherwise pads at start |
|
var out = String(text); |
if(!ch){ |
ch = '0'; |
} |
while(out.length < size){ |
if(end){ |
out += ch; |
}else{ |
out = ch + out; |
} |
} |
return out; // String |
}; |
|
dojo.string.substitute = function( /*String*/template, |
/*Object or Array*/map, |
/*Function?*/transform, |
/*Object?*/thisObject){ |
// summary: |
// Performs parameterized substitutions on a string. Throws an |
// exception if any parameter is unmatched. |
// description: |
// For example, |
// | dojo.string.substitute("File '${0}' is not found in directory '${1}'.",["foo.html","/temp"]); |
// | dojo.string.substitute("File '${name}' is not found in directory '${info.dir}'.",{name: "foo.html", info: {dir: "/temp"}}); |
// both return |
// "File 'foo.html' is not found in directory '/temp'." |
// template: |
// a string with expressions in the form ${key} to be replaced or |
// ${key:format} which specifies a format function. NOTE syntax has |
// changed from %{key} |
// map: where to look for substitutions |
// transform: |
// a function to process all parameters before substitution takes |
// place, e.g. dojo.string.encodeXML |
// thisObject: |
// where to look for optional format function; default to the global |
// namespace |
|
return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, function(match, key, format){ |
var value = dojo.getObject(key,false,map); |
if(format){ value = dojo.getObject(format,false,thisObject)(value);} |
if(transform){ value = transform(value, key); } |
return value.toString(); |
}); // string |
}; |
|
dojo.string.trim = function(/*String*/ str){ |
// summary: trims whitespaces from both sides of the string |
// description: |
// This version of trim() was taken from Steven Levithan's blog: |
// http://blog.stevenlevithan.com/archives/faster-trim-javascript. |
// The short yet good-performing version of this function is |
// dojo.trim(), which is part of the base. |
str = str.replace(/^\s+/, ''); |
for(var i = str.length - 1; i > 0; i--){ |
if(/\S/.test(str.charAt(i))){ |
str = str.substring(0, i + 1); |
break; |
} |
} |
return str; // String |
}; |
|
} |