-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsimple-javascript-validator.min.js
1 lines (1 loc) · 1.53 KB
/
simple-javascript-validator.min.js
1
function validateInputs(a){var e=Object.keys(a),r=[];return e.map(e=>{var t=a[e].split("|"),i=t[0];if(2!=t.length)r.push(e+" - no set validation parameter");else{var n,s=t[1].split(",");for(n of s)switch(n){case"number":(o=numberValidator(e,i))&&r.push(o);break;case"required":(o=requiredValidator(e,i))&&r.push(o);break;case"gtzero":(o=selectTagValidator(e,i))&&r.push(o);break;case"email":(o=emailValidator(e,i))&&r.push(o);break;case"date":var o;(o=dateValidator(e,i))&&r.push(o);break;default:r.push(ucFirst(e)+": Unknown validation error occured")}}}),!!r.length&&formatErrorMessage(r)}function formatErrorMessage(a){var e="";for(i=0;i<a.length;i++)e+="· "+ucFirst(a[i])+"<br/>";return e}function ucFirst(a){return a[0].toUpperCase()+a.slice(1)}function numberValidator(a,e){if(isNaN(e))return a+" is not a number"}function requiredValidator(a,e){return"null"===e||""==e?a+" is required":""}function selectTagValidator(a,e){if(0==e)return a+" - no selected value"}function validateEmail(a){return/^(([^<>()[\]\\.,;:\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,}))$/.test(a)}function emailValidator(a,e){if(!validateEmail(e))return a+" is not a valid email"}function dateValidator(a,e){let r=e.match(/^(\d\d?)\/(\d\d?)\/(\d{4})$/),t=r,i=[0,31,29,31,30,31,30,31,31,30,31,30,31];if(r){const a=parseInt(r[1]),e=parseInt(r[2]),n=parseInt(r[3]);t=a<=12&&a>0,t&=e<=i[a]&&e>0;const s=n%400==0||n%4==0&&n%100!=0;t&=2!=a||s||e<=28}if(!t)return a+" - invalid date format"}