Mercurial > if-archive-json-mirror
view remedial.js @ 4:d004395e7606
Oops, forgot to add index.js from the parchment svn repo.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Tue, 27 May 2008 23:52:37 -0700 |
parents | 30b149f2cdf1 |
children |
line wrap: on
line source
// Taken from "Remedial Javascript" by Douglas Crockford: // http://javascript.crockford.com/remedial.html function typeOf(value) { var s = typeof value; if (s === 'object') { if (value) { if (typeof value.length === 'number' && !(value.propertyIsEnumerable('length')) && typeof value.splice === 'function') { s = 'array'; } } else { s = 'null'; } } return s; } function isEmpty(o) { var i, v; if (typeOf(o) === 'object') { for (i in o) { v = o[i]; if (v !== undefined && typeOf(v) !== 'function') { return false; } } } return true; } String.prototype.entityify = function () { return this.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); }; String.prototype.quote = function () { var c, i, l = this.length, o = '"'; for (i = 0; i < l; i += 1) { c = this.charAt(i); if (c >= ' ') { if (c === '\\' || c === '"') { o += '\\'; } o += c; } else { switch (c) { case '\b': o += '\\b'; break; case '\f': o += '\\f'; break; case '\n': o += '\\n'; break; case '\r': o += '\\r'; break; case '\t': o += '\\t'; break; default: c = c.charCodeAt(); o += '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16); } } } return o + '"'; }; String.prototype.supplant = function (o) { return this.replace(/{([^{}]*)}/g, function (a, b) { var r = o[b]; return typeof r === 'string' || typeof r === 'number' ? r : a; } ); }; String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g, ""); };