UNPKG

automizy-js

Version:

Automizy widget collection

161 lines (156 loc) 7.89 kB
define([ 'automizy/core', 'automizy/input', 'automizy/functions/getUniqueString' ], function () { Validator = function (obj) { var t = this; t.d = { email: false, domain:false, url:false, domainOrUrl:false, int:false, number:false, minLength:false, maxLength:false, min:false, max:false, file:false, sameas:false, isValid:true, errors:[], id: 'automizy-validator-' + $A.getUniqueString(), regular:{ email:/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, domain:/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/, url:/^(((https?|ftp):\/\/)|(www\.))(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i }, input:false, value:false }; if(typeof obj !== "undefined"){ if(typeof obj === "function" && obj instanceof Input){ t.d.input = obj; }else if(typeof obj === 'object') { if(typeof obj.input !== 'undefined'){ if(obj.input instanceof Input){ t.d.input = obj.input; }else if(typeof obj.input === 'string'){ t.d.input = $A.getInput(obj.input) || false; } } } if(t.d.input instanceof Input)t.d.value = t.d.input.val(); } if(typeof obj === 'object') { if (typeof obj.email !== 'undefined' && obj.email !== false) t.email(); if (typeof obj.domain !== 'undefined' && obj.domain !== false) t.domain(); if (typeof obj.url !== 'undefined' && obj.url !== false) t.url(); if (typeof obj.domainOrUrl !== 'undefined' && obj.domainOrUrl !== false) t.domainOrUrl(); if (typeof obj.int !== 'undefined' && obj.int !== false) t.int(); if (typeof obj.num !== 'undefined' && obj.num !== false) t.num(); if (typeof obj.minLength !== 'undefined') t.minLength(obj.minLength); } }; var p = Validator.prototype; p.email = function () { this.d.email = true; var a = this.d.regular.email.test(this.d.value); if(a === false){ this.d.isValid = false; this.d.errors.push("Invalid email address"); } return this.d.isValid; }; p.domain = function () { this.d.domain = true; var a = this.d.regular.domain.test(this.d.value); if(a === false){ this.d.isValid = false; this.d.errors.push("Invalid domain"); } return this.d.isValid; }; p.url = function () { this.d.url = true; var a = this.d.regular.url.test(this.d.value); if(a === false){ this.d.isValid = false; this.d.errors.push("Invalid URL"); } return this.d.isValid; }; p.domainOrUrl = function () { this.d.domainOrUrl = true; var a = this.d.regular.domain.test(this.d.value) || this.d.regular.url.test(this.d.value); if(a === false){ this.d.isValid = false; this.d.errors.push("Invalid domain or URL"); } return this.d.isValid; }; p.int = p.integer = function () { this.d.int = true; var a = (this.d.value == +this.d.value && this.d.value == (this.d.value | 0)); if(a === false){ this.d.isValid = false; this.d.errors.push("Not an integer"); } return this.d.isValid; }; p.num = p.number = function () { this.d.number = true; if(isNaN(this.d.value)){ this.d.isValid = false; this.d.errors.push("Not a number"); } return this.d.isValid; }; p.minLength = p.minLen = function (len) { len = parseInt(len); this.d.minLength = len; if(this.d.value.length < len){ this.d.isValid = false; this.d.errors.push("Too short"); } return this.d.isValid; }; p.input = p.setInput = function (input) { if(input instanceof Input){ this.d.input = input; t.d.value = input.val(); return this; } if(!input)return this.d.input; return this; }; p.errors = function () { return this.d.errors; }; $A.m.Validator = Validator; $A.newValidator = $A.createValidator = function(obj){ var t = new Validator(obj); $A.d.validators[t.d.id] = t; return t; }; $A.getValidator = function(id){ return $A.d.validatorss[id]; }; $A.getAllValidator = function(){ return $A.d.validators; }; $A.removeValidator = $A.deleteValidator = function(id){ return $A.getValidator[id].remove(); }; $A.removeAllValidator = $A.deleteAllValidator = function(id){ for(i in $A.getAllValidator())$A.getAllValidator()[i].remove(); }; });