tomi77/backbone-forms-validators

View on GitHub
bbf-validators.min.js

Summary

Maintainability
A
0 mins
Test Coverage
var indexOf=[].indexOf||function(e){for(var t=0,r=this.length;t<r;t++)if(t in this&&this[t]===e)return t;return-1};!function(e,t){switch(!1){case!("function"==typeof define&&define.amd):define(["underscore","backbone-forms"],t);break;case"object"!=typeof exports:t(require("underscore"),require("backbone-forms"));break;default:t(e._,e.Backbone.Form)}}(this,function(e,t){t.validators.multiple=function(r){var n;return r=e.extend({separator:";"},r),n=t.validators[r.base_type](r),function(t){var s;if(""===t.trim()&&(t=null),null!=t)return r.value=t,t=t.split(r.separator).map(function(e){return e.trim()}),s=e.compact(e.map(t,n)),s.length>0?{type:r.base_type,message:r.message||s[0].message}:void 0}},t.validators.errMessages.phone="Incorrect phone number",t.validators.phone=function(r){return r=e.extend({type:"phone",message:t.validators.errMessages.phone,regexp:/^(?:(?:\(?(?:00|\+)(?:[1-4]\d{2}|[1-9]\d?)\)?)?[\-\. \\\/]?)?(?:\(?\d+\)?[\-\. \\\/]?)+(?:[\-\. \\\/]?(?:\#|ext\.?|extension|x)[\-\. \\\/]?\d+)?$/},r),t.validators.regexp(r)},t.validators.errMessages.minlength=e.template("The minimum length is <%= minlength %> characters",null,t.templateSettings),t.validators.minlength=function(r){return r=e.extend({type:"minlength",maxlength:0,message:t.validators.errMessages.minlength},r),r.regexp=new RegExp("^.{"+r.minlength+",}$"),t.validators.regexp(r)},t.validators.errMessages.maxlength=e.template("The maximum length is <%= maxlength %> characters",null,t.templateSettings),t.validators.maxlength=function(r){return r=e.extend({type:"maxlength",maxlength:0,message:t.validators.errMessages.maxlength},r),r.regexp=new RegExp("^.{0,"+r.maxlength+"}$"),t.validators.regexp(r)},t.validators.errMessages.table_weights="Invalid control code",t.validators.table_weights=function(r){if(null==(r=e.extend({type:"table_weights",message:t.validators.errMessages.table_weights},r)).lengths)throw new Error('Option "lengths" is required');if(e.isArray(r.lengths)||(r.lengths=[r.lengths]),null==r.weights)throw new Error('Option "weights" is required');if(null==r.modulo_values||!e.isArray(r.modulo_values))throw new Error('Option "modulo_values" is required');if(e.isArray(r.weights)){if(1!==r.lengths.length)throw new Error("Incorrect options weights and lengths");r.weights=e.object([r.lengths[0]],[r.weights])}return e.isArray(r.excepts)||(r.excepts=[r.excepts]),function(t){var n,s,a,i;if(""===t.trim()&&(t=null),null!=t)return r.value=t,s={type:r.type,message:r.message},t=t.replace(/[\s-]/g,""),indexOf.call(r.excepts,t)>=0?s:(t=t.split(""),a=t.length,indexOf.call(r.lengths,a)<0?s:(n=t.pop(),i=e.reduce(e.zip(t,r.weights[t.length+1]),function(e,t){return e+t[1]*parseInt(t[0],10)},0),t=""+r.modulo_values[i%r.modulo_values.length],t!==n?s:void 0))}}});