diff --git a/min.js b/min.js index 425428f..ffd2468 100644 --- a/min.js +++ b/min.js @@ -1 +1 @@ -(function(a,b){typeof module!="undefined"?(module.exports=b()):typeof define=="function"&&typeof define.amd=="object"?define(b):this[a]=b()})("validator",function(){var a=true,b=null;"use strict";var f={version:"stable-1.0"};function d(a){a==b&&(a=undefined);return String(a).replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)","g"),"")}function c(a,c){if(a===""||a===undefined||a===b)a=c;return a}var e={required:function(d,e){e=c(e,b);return e==b?d.message:a},requiredstring:function(b,e){e=c(e,"");b.trim==a&&(e=d(e));return e.length==0?b.message:a},"int":function(d,e){e=c(e,b);if(e==b)return a;if(/^\-?[0-9]+$/.test(e))e=parseInt(e);else return d.message;var g=parseInt(d.min),f=parseInt(d.max);if(!isNaN(g)&&e-g<0)return d.message;if(!isNaN(f)&&e-f>0)return d.message;return a},"long":function(){return this["int"].apply(this,[].slice.call(arguments))},"double":function(d,e){e=c(e,b);if(e==b)return a;if(/^\-?[0-9]*\.?[0-9]+$/.test(e))e=parseFloat(e);else return d.message;var g=parseFloat(d.maxInclusive),i=parseFloat(d.minInclusive),f=parseFloat(d.maxExclusive),h=parseFloat(d.minExclusive);if(!isNaN(g)&&e-g>0||!isNaN(i)&&e-i<0||!isNaN(f)&&e-f>=0||!isNaN(h)&&e-h<=0)return d.message;return a},date:function(d,e){e=c(e,b);if(e==b)return a;var f=function(a){var b=a;if(b=Date.parse(a))return new Date(b);b=a;if(/^[0-9\-\/\ :]*$/.test(b)){b=b.replace(/\-/g,"/");if(b=new Date(b))return b}return NaN},e=f(e);if(!e||"Invalid Date"==e)return d.message;var h=f(d.min),g=f(d.max);if(!isNaN(h)&&e.getTime()-h.getTime()<0)return d.message;if(!isNaN(g)&&e.getTime()-g.getTime()>0)return d.message;return a},email:function(a,b){a.expression="^[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(.[A-Za-z0-9-]+)*((.[A-Za-z0-9]{2,})|(.[A-Za-z0-9]{2,}.[A-Za-z0-9]{2,}))$";a.caseSensitive=false;return e.regex(a,b)},regex:function(e,f){f=c(f,b);if(f==b||d(f).length==0)return a;undefined==e.caseSensitive&&(e.caseSensitive=a);undefined==e.trim&&(e.trim=a);e.trim==a&&(f=d(f));var g=e.caseSensitive?"i":undefined;try{if(!new RegExp(e.expression,g).test(f))return e.message}catch(h){}return a},url:function(b,c){return a},stringlength:function(e,f){f=c(f,b);if(f==b||f.length<=0)return a;undefined==e.minLength&&(e.minLength=-1);undefined==e.maxLength&&(e.maxLength=-1);undefined==e.trim&&(e.trim=a);e.trim==a&&(f=d(f));if(e.minLength>-1&&f.length-1&&f.length>e.minLength)return e.message;return a}};f.validate=function(b,c){var f=[];for(var d in c||{})for(var g in c[d]||{}){var j=c[d][g]||{},i=e[g];if(typeof i=="function"){var h=i(j,b[d],b);h!==a&&f.push({field:d,message:h,value:b[d]})}else throw new Error("Validation function "+g+" not found.")}return f.length?{result:false,field:f[0].field,message:f[0].message,stacks:f}:{result:a,message:"OK"}};f.register=function(b,c){if(!e.hasOwnProperty("type")&&typeof c=="function"){e[b]=c;return a}return false};return f}) \ No newline at end of file +(function(a,b){typeof define==="function"&&define(b);(typeof exports!=="undefined"?exports:a).validator=b()})(this,function(){var a=true,b=null;"use strict";var e={version:"stable-1.0.1"},d=function(a){a==b&&(a=undefined);return String(a).replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)","g"),"")},c=function(a,c){if(a===""||a===undefined||a===b)a=c;return a},f={required:function(d,e){e=c(e,b);return e==b?d.message:a},requiredstring:function(b,e){e=c(e,"");b.trim==a&&(e=d(e));return e.length==0?b.message:a},"int":function(d,e){e=c(e,b);if(e==b)return a;if(/^\-?[0-9]+$/.test(e))e=parseInt(e);else return d.message;var g=parseInt(d.min),f=parseInt(d.max);if(!isNaN(g)&&e-g<0)return d.message;if(!isNaN(f)&&e-f>0)return d.message;return a},"long":function(){return this["int"].apply(this,[].slice.call(arguments))},"double":function(d,e){e=c(e,b);if(e==b)return a;if(/^\-?[0-9]*\.?[0-9]+$/.test(e))e=parseFloat(e);else return d.message;var g=parseFloat(d.maxInclusive),i=parseFloat(d.minInclusive),f=parseFloat(d.maxExclusive),h=parseFloat(d.minExclusive);if(!isNaN(g)&&e-g>0||!isNaN(i)&&e-i<0||!isNaN(f)&&e-f>=0||!isNaN(h)&&e-h<=0)return d.message;return a},date:function(d,e){e=c(e,b);if(e==b)return a;var f=function(a){var b=a;if(b=Date.parse(a))return new Date(b);b=a;if(/^[0-9\-\/\ :]*$/.test(b)){b=b.replace(/\-/g,"/");if(b=new Date(b))return b}return NaN},e=f(e);if(!e||"Invalid Date"==e)return d.message;var h=f(d.min),g=f(d.max);if(!isNaN(h)&&e.getTime()-h.getTime()<0)return d.message;if(!isNaN(g)&&e.getTime()-g.getTime()>0)return d.message;return a},email:function(a,b){a.expression="^[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(.[A-Za-z0-9-]+)*((.[A-Za-z0-9]{2,})|(.[A-Za-z0-9]{2,}.[A-Za-z0-9]{2,}))$";a.caseSensitive=false;return f.regex(a,b)},regex:function(e,f){f=c(f,b);if(f==b||d(f).length==0)return a;undefined==e.caseSensitive&&(e.caseSensitive=a);undefined==e.trim&&(e.trim=a);e.trim==a&&(f=d(f));var g=e.caseSensitive?"i":undefined;try{if(!new RegExp(e.expression,g).test(f))return e.message}catch(h){}return a},url:function(b,c){return a},stringlength:function(e,f){f=c(f,b);if(f==b||f.length<=0)return a;undefined==e.minLength&&(e.minLength=-1);undefined==e.maxLength&&(e.maxLength=-1);undefined==e.trim&&(e.trim=a);e.trim==a&&(f=d(f));if(e.minLength>-1&&f.length-1&&f.length>e.minLength)return e.message;return a}};e.validate=function(b,c){var e=[];for(var d in c||{})for(var g in c[d]||{}){var j=c[d][g]||{},i=f[g];if(typeof i=="function"){var h=i(j,b[d],b);h!==a&&e.push({field:d,message:h,value:b[d]})}else throw new Error("Validation function "+g+" not found.")}return e.length?{result:false,field:e[0].field,message:e[0].message,stacks:e}:{result:a,message:"OK"}};return e}) \ No newline at end of file diff --git a/source.js b/source.js index eda8ce2..960d1c4 100644 --- a/source.js +++ b/source.js @@ -25,27 +25,24 @@ * date: 2013/09/28 * repos: https://github.com/mycoin/validation */ -;(function(ns, defination) { - if (typeof module != 'undefined') { - module.exports = defination(); - } else if (typeof define == 'function' && typeof define.amd == 'object') { - define(defination); - } else { - this[ns] = defination(); - } -})('validator', function() { - // use the trict mode +;(function (global, factory) { + //AMD and CMD. + typeof define === 'function' && define(factory); + //Node.js and Browser global + (typeof exports !== 'undefined' ? exports : global).validator = factory(); +}(this, function () { 'use strict'; + // exports object var exports = { - version: 'stable-1.0' + version: 'stable-1.0.1' }; /** * notice String(undefined) == '', so assert null into '' * @param Object {null, uindefined, String}, yes, toString method instead * @return return a string that has been trimed. */ - function trim(string) { + var trim = function (string) { string == null && (string = undefined); return String(string).replace(new RegExp('(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)', 'g'), ''); }; @@ -58,7 +55,7 @@ * @param Object type * @return Object value (optional) */ - function restore(value, type) { + var restore = function (value, type) { if (value === '' || value === undefined || value === null) { value = type; } @@ -331,13 +328,5 @@ 'message': 'OK' }; }; - - exports.register = function (type, rules) { - if(! validators.hasOwnProperty('type') && typeof rules == 'function') { - validators[type] = rules; - return true; - } - return false; - }; return exports; -}); +})); \ No newline at end of file diff --git a/tests/index.html b/tests/index.html index ac4b7f1..24ed2b0 100644 --- a/tests/index.html +++ b/tests/index.html @@ -12,7 +12,7 @@

    test markup, will be hidden
    - +