Object Validation
by Robodude
JavaScript
Object.prototype.validate = function (i) {
var o = this;
var valid = true;
for (var iprop in i) {
if (i.hasOwnProperty(iprop)) {
var objectPropertyOfInterface = o[iprop];
if (objectPropertyOfInterface) {
if (typeof i[iprop] === "object") {
var deepValidate = objectPropertyOfInterface.validate(i[iprop]);
if (!deepValidate) {
valid = false;
break;
}
} else {
var interfaceProperty = i[iprop].toLowerCase().trim();
if (interfaceProperty === "array") {
if (!Array.isArray(objectPropertyOfInterface)) {
valid = false;
break;
}
}
else if (interfaceProperty === "date") {
if (Object.prototype.toString.call(objectPropertyOfInterface) !== '[object Date]') {
valid = false;
break;
}
}
else if (typeof objectPropertyOfInterface !== interfaceProperty) {
valid = false;
break;
}
}
} else {
valid = false;
break;
}
}
}
return valid;
};
...