UNPKG

input-is

Version:
169 lines (128 loc) 3.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var isValidDate = function isValidDate(value, format) { var date = void 0; var day = void 0; var month = void 0; var year = void 0; var valid = void 0; if (format === 'YYYY-DD-MM') { date = value.split('-'); year = date[0]; day = date[1]; month = date[2]; } else if (format === 'YYYY-MM-DD') { date = value.split('-'); year = date[0]; month = date[1]; day = date[2]; } else if (format === 'MM-DD-YYYY') { date = value.split('-'); month = date[0]; day = date[1]; year = date[2]; } else if (format === 'DD-MM-YYYY') { date = value.split('-'); day = date[0]; month = date[1]; year = date[2]; } else if (format === 'YYYY/MM/DD') { date = value.split('/'); year = date[0]; month = date[1]; day = date[2]; } else if (format === 'YYYY/DD/MM') { date = value.split('/'); year = date[0]; day = date[1]; month = date[2]; } else if (format === 'MM/DD/YYYY') { date = value.split('/'); month = date[0]; day = date[1]; year = date[2]; } else if (format === 'DD/MM/YYYY') { date = value.split('/'); day = date[0]; month = date[1]; year = date[2]; } day = Number(day); month = Number(month); year = Number(year); var dateToCheck = new Date(); dateToCheck.setFullYear(year, month - 1, day); if (dateToCheck.getFullYear() === year && dateToCheck.getMonth() + 1 === month && dateToCheck.getDate() === day) { valid = true; } else { valid = false; } return valid; }; var isValidTime = function isValidTime(value) { var regEx = /^([0-1][0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$/; return regEx.test(value); }; var inputIs = { date: function date(value, format) { return isValidDate(value, format); }, datetime: function datetime(value, format) { var date = value.includes('T') ? value.split('T')[0] : value.split(' ')[0]; var time = value.includes('T') ? value.split('T')[1] : value.split(' ')[1]; var validDate = isValidDate(date, format); var validTime = isValidTime(time); return validDate && validTime; }, email: function email(value) { var regEx = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/; return regEx.test(value); }, exactly: function exactly(value, target) { return value === target; }, filled: function filled(value) { return value.length > 0; }, float: function float(value) { var regEx = /^\d+\.\d+$/; return regEx.test(value); }, integer: function integer(value) { var regEx = /^\d+$/; return regEx.test(value); }, max: function max(value, target) { return value.length <= target; }, min: function min(value, target) { return value.length >= target; }, not: function not(value, target) { return value !== target; }, number: function number(value) { return !isNaN(value); }, partOf: function partOf(value, characters) { return characters.includes(value); }, phonenumber: function phonenumber(value) { var regEx = /^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,10}$/; return regEx.test(value); }, time: function time(value) { return isValidTime(value); }, url: function url(value) { var regEx = /^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,})$/; return regEx.test(value); }, valid: function valid(value, regEx) { return regEx.test(value); } }; exports.default = inputIs; module.exports = exports['default'];