Mercurial > hg > extraction-interface
diff geotemco/lib/simile/ajax/scripts/string.js @ 0:b12c99b7c3f0
commit for previous development
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 19 Jan 2015 17:13:49 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/geotemco/lib/simile/ajax/scripts/string.js Mon Jan 19 17:13:49 2015 +0100 @@ -0,0 +1,43 @@ +/*================================================== + * String Utility Functions and Constants + *================================================== + */ + +String.prototype.trim = function() { + return this.replace(/^\s+|\s+$/g, ''); +}; + +String.prototype.startsWith = function(prefix) { + return this.length >= prefix.length && this.substr(0, prefix.length) == prefix; +}; + +String.prototype.endsWith = function(suffix) { + return this.length >= suffix.length && this.substr(this.length - suffix.length) == suffix; +}; + +String.substitute = function(s, objects) { + var result = ""; + var start = 0; + while (start < s.length - 1) { + var percent = s.indexOf("%", start); + if (percent < 0 || percent == s.length - 1) { + break; + } else if (percent > start && s.charAt(percent - 1) == "\\") { + result += s.substring(start, percent - 1) + "%"; + start = percent + 1; + } else { + var n = parseInt(s.charAt(percent + 1)); + if (isNaN(n) || n >= objects.length) { + result += s.substring(start, percent + 2); + } else { + result += s.substring(start, percent) + objects[n].toString(); + } + start = percent + 2; + } + } + + if (start < s.length) { + result += s.substring(start); + } + return result; +};