UNPKG

modm

Version:

A MongoDB Object Document Mapper (ODM)

82 lines (65 loc) 2.62 kB
// validate a data types exports.string = function(data) { return typeof data === "string" ? true : false; }; exports.number = function(data) { if (typeof data === "number" && (data <= 0 || data >= 0)) { return true; } return false; }; exports.array = function(data) { return data && data.constructor.name === "Array" ? true : false; }; exports.object = function(data) { return data && data.constructor.name === "Object" ? true : false; }; exports.boolean = function(data) { return [true, false].indexOf(data) !== -1 ? true : false; }; exports.buffer = function(data) { return data && data.constructor.name === "Buffer" ? true : false; }; exports.objectid = function(data) { return data && data.constructor.name === "ObjectID" ? true : false; }; exports.date = function(data) { // handle special "now" default value if (data === "now") { return true; } return data && data.constructor.name === "Date" ? true : false; }; // validate email var special = "!#$%&\"*+/=?^`{|}~"; var ascii = "a-z0-9._\\-"; var umlaut = "àáâãäåæāăąçćĉċčďđèéêëēĕėęěĝğġģĥħìíîïĩīĭįıðĵķĸĺļľŀłñńņňʼnŋòóôõöøō" + "ŏőœŕŗřśŝšșßťŧțùúûüũūŭůűųŵýÿŷźżžþΐάέήίΰαβγδεζηθ" + "ικλμνξοπρςστυφχψωϊϋόύώабвгдежзийклмнопрстуфхцчшщъыьэюяἀἁἂἃἄἅἆἇ" + "ἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆ" + "ᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷ"; var IEA = {}; function email(string) { if (!string) { return false; } // remove all space //string = string.replace(/[°¨[\]\s]*/g, "").toLowerCase(); var string2 = string.toLowerCase().replace(new RegExp("[^" + ascii + special + umlaut + "@]", "g"), ""); // test pattern //return new RegExp("^[" + ascii + special + umlaut + "]+@[" + ascii + umlaut + "]+\.[a-z]+$").test(string); var pattern = new RegExp("^[" + ascii + special + umlaut + "]+@[" + ascii + umlaut + "]+\.[a-z]+$"); //.test(string); if (pattern.test(string2)) { return true; } if (!IEA[string2]) { IEA[string2] = [string, 0]; } ++IEA[string2][1]; return false; } exports.email = email; exports.getIEA = function() { return IEA; }; // vaidate url