format-validator
Advanced tools
Comparing version 0.8.1 to 0.8.2
@@ -1,1 +0,609 @@ | ||
(function(global,factory){if(typeof define==="function"&&define.amd){define(["exports"],factory);}else if(typeof exports!=="undefined"){factory(exports);}else{var mod={exports:{}};factory(mod.exports);global.validators=mod.exports;}})(this,function(exports){"use strict";function areDigits(input){return /^\d+$/.test(input);}exports["areDigits"]=areDigits;function isCreditCard(str){return(str.length===15||str.length===16)&&isLuhn(str);}exports["isCreditCard"]=isCreditCard;function isEAN13(input){var sum=0;var tmp;var multiply=false;if(input.length!==13){return false;}for(var i=input.length-1;i>=0;i--){tmp=parseInt(input.charAt(i),10);if(multiply&&tmp!==0){tmp*=3;}multiply=!multiply;sum+=tmp;}return sum%10===0;}exports["isEAN13"]=isEAN13;function isEmail(input){return!/\s/.test(input)&&!/\.@/.test(input)&&!/\.\./.test(input)&&/^(([^<>()[]\.,;: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(input);}exports["isEmail"]=isEmail;function isIMEI(input){return input.length===15&&areDigits(input)&&isLuhn(input);}exports["isIMEI"]=isIMEI;function isLuhn(input){var modulo=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;var sum=0;var tmp;var multiply=false;for(var i=input.length-1;i>=0;i--){tmp=parseInt(input.charAt(i),10);if(multiply&&tmp!==0){tmp*=2;if(tmp>9){tmp-=9;}}multiply=!multiply;sum+=tmp;}return sum%modulo===0;}exports["isLuhn"]=isLuhn;function isMobilePhoneFr(input){return /^(0)[67]\d{8}$/.test(input);}exports["isMobilePhoneFr"]=isMobilePhoneFr;function handleSpecialCodes(nirpp){if(nirpp.indexOf('A')!==-1){return{withoutLetters:nirpp.replace("A","0"),offset:1000000};}if(nirpp.indexOf('B')!==-1){return{withoutLetters:nirpp.replace("B","0"),offset:2000000};}return{withoutLetters:nirpp,offset:0};}function parse(nirpp){var _handleSpecialCodes=handleSpecialCodes(nirpp);var withoutLetters=_handleSpecialCodes.withoutLetters;var offset=_handleSpecialCodes.offset;return parseInt(withoutLetters,10)-offset;}function generateControlKey(nirpp){return 97-parse(nirpp)%97;}function decompose(input){return{sexe:parseInt(input.slice(0,1),10),an:parseInt(input.slice(1,3),10),mois:parseInt(input.slice(3,5),10),dept:input.slice(5,7),ville:parseInt(input.slice(7,10),10),ordre:parseInt(input.slice(10,13),10),key:parseInt(input.slice(-2),10)};}function isNIR(input){if(input.length!=15){return false;}try{var dec=decompose(input);if(!(dec.sexe===1||dec.sexe===2||dec.sexe===8)){return false;}var computedKey=generateControlKey(input.slice(0,13));return computedKey===dec.key;}catch(e){return false;}}exports["isNIR"]=isNIR;function isSIREN(input){return input.length===9&&areDigits(input)&&isLuhn(input,10);}exports["isSIREN"]=isSIREN;function isSIRET(input){var precheck=input.length===14&&areDigits(input);var siren=input.slice(0,9);return precheck&&(isLuhn(siren,10)||siren==="356000000"&&isLuhn(input,5));}exports["isSIRET"]=isSIRET;}); | ||
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(["exports"], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports); | ||
} else { | ||
var mod = { | ||
exports: {} | ||
}; | ||
factory(mod.exports); | ||
global.validators = mod.exports; | ||
} | ||
})(this, function (exports) { | ||
"use strict"; | ||
function areDigits(input) { | ||
return (/^\d+$/.test(input) | ||
); | ||
} | ||
exports.areDigits = areDigits; | ||
function areIn(input, acceptings) { | ||
if (!acceptings) { | ||
return false; | ||
} | ||
for (var i = 0, l = input.length - 1; i <= l; i++) { | ||
var found = false; | ||
for (var j = 0; j < acceptings.length; j++) { | ||
if (input[i] === acceptings[j]) { | ||
found = true; | ||
break; | ||
} | ||
} | ||
if (!found) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
exports.areIn = areIn; | ||
function areLettersOnly(input) { | ||
return (/^[a-z]+$/i.test(input) | ||
); | ||
} | ||
exports.areLettersOnly = areLettersOnly; | ||
function isBIC(input) { | ||
return (/^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(input) | ||
); | ||
} | ||
exports.isBIC = isBIC; | ||
var cardTypes = [{ type: "MasterCard", reg: /^(5[12345])/, minLength: 16, maxLength: 16 }, { type: "VISA", reg: /^(4)/, minLength: 13, maxLength: 16 }, { type: "Amex", reg: /^(3[47])/, minLength: 16, maxLength: 16 }, { type: "DinersClub", reg: /^(3(0[012345]|[68]))/, minLength: 16, maxLength: 16 }, { type: "enRoute", reg: /^(2(014|149))/, minLength: 16, maxLength: 16 }, { type: "Discover", reg: /^(6011)/, minLength: 16, maxLength: 16 }, { type: "JCB", reg: /^(3)|^(2131|1800)/, minLength: 15, maxLength: 16 }]; | ||
function isCreditCard(str, type) { | ||
var l = str.length; | ||
if (l < 13 || l > 16) { | ||
return false; | ||
} | ||
if (!isLuhn(str)) { | ||
return false; | ||
} | ||
if (type !== undefined) { | ||
var found = cardTypes.filter(function (x) { | ||
return x.type === type; | ||
}); | ||
if (found != null && found.length === 1) { | ||
found = found[0]; | ||
return l >= found.minLength && l <= found.maxLength && found.reg.test(str); | ||
} | ||
} | ||
return true; | ||
} | ||
exports.isCreditCard = isCreditCard; | ||
function decodeFormat(format) { | ||
if (format === "DD/MM/YYYY") { | ||
return { reg: /^\d{1,2}\/\d{1,2}\/\d{4}$/, d: 0, m: 1, y: 2, sp: "/" }; | ||
} else if (format === "DD-MM-YYYY") { | ||
return { reg: /^\d{1,2}-\d{1,2}-\d{4}$/, d: 0, m: 1, y: 2, sp: "-" }; | ||
} else if (format === "MM/DD/YYYY") return { reg: /^\d{1,2}\/\d{1,2}\/\d{4}$/, d: 1, m: 0, y: 2, sp: "/" };else if (format === "MM-DD-YYYY") return { reg: /^\d{1,2}-\d{1,2}-\d{4}$/, d: 1, m: 0, y: 2, sp: "-" };else if (format === "YYYY-MM-DD") return { reg: /^\d{4}-\d{1,2}-\d{1,2}$/, d: 2, m: 1, y: 0, sp: "-" }; | ||
} | ||
function isDate(input, formats) { | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
try { | ||
for (var _iterator = formats[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var format = _step.value; | ||
var exp = decodeFormat(format); | ||
if (exp.reg.test(input)) { | ||
var tokens = input.split(exp.sp); | ||
var d = +tokens[exp.d]; | ||
var m = +tokens[exp.m]; | ||
var y = +tokens[exp.y]; | ||
var monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; | ||
if (y % 400 === 0 || y % 100 !== 0 && y % 4 === 0 && m === 2) { | ||
monthLength[1] = 29; | ||
} | ||
if (d > 0 && d <= monthLength[m - 1] && m >= 1 && m <= 12 && y >= 0 && y <= 9999) { | ||
return true; | ||
} | ||
} | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
} | ||
return false; | ||
} | ||
exports.isDate = isDate; | ||
function isEAN13(input) { | ||
var sum = 0; | ||
var tmp; | ||
var multiply = false; | ||
if (input.length !== 13) { | ||
return false; | ||
} | ||
for (var i = input.length - 1; i >= 0; i--) { | ||
tmp = parseInt(input.charAt(i), 10); | ||
if (multiply && tmp !== 0) { | ||
tmp *= 3; | ||
} | ||
multiply = !multiply; | ||
sum += tmp; | ||
} | ||
return sum % 10 === 0; | ||
} | ||
exports.isEAN13 = isEAN13; | ||
function isEmail(input) { | ||
return !/\s/.test(input) && !/\.@/.test(input) && !/\.\./.test(input) && /^(([^<>()[]\.,;: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(input); | ||
} | ||
exports.isEmail = isEmail; | ||
function isEmpty(input, options) { | ||
if (!options) { | ||
options = { ignore_spaces: true }; | ||
} | ||
if (options && options.ignore_spaces) { | ||
input = input.trim(); | ||
} | ||
return input.length === 0; | ||
} | ||
exports.isEmpty = isEmpty; | ||
function isIBAN(str) { | ||
var iban = str.replace(/ /g, "").toUpperCase(); | ||
var ibancheckdigits = ""; | ||
var leadingZeroes = true; | ||
var cRest = ""; | ||
var cOperator = ""; | ||
var countrycode, ibancheck, charAt, cChar, bbanpattern, bbancountrypatterns, ibanregexp, i, p; | ||
var minimalIBANlength = 5; | ||
if (iban.length < minimalIBANlength) { | ||
return false; | ||
} | ||
countrycode = iban.substring(0, 2); | ||
bbancountrypatterns = { | ||
"AL": "\\d{8}[\\dA-Z]{16}", | ||
"AD": "\\d{8}[\\dA-Z]{12}", | ||
"AT": "\\d{16}", | ||
"AZ": "[\\dA-Z]{4}\\d{20}", | ||
"BE": "\\d{12}", | ||
"BH": "[A-Z]{4}[\\dA-Z]{14}", | ||
"BA": "\\d{16}", | ||
"BR": "\\d{23}[A-Z][\\dA-Z]", | ||
"BG": "[A-Z]{4}\\d{6}[\\dA-Z]{8}", | ||
"CR": "\\d{17}", | ||
"HR": "\\d{17}", | ||
"CY": "\\d{8}[\\dA-Z]{16}", | ||
"CZ": "\\d{20}", | ||
"DK": "\\d{14}", | ||
"DO": "[A-Z]{4}\\d{20}", | ||
"EE": "\\d{16}", | ||
"FO": "\\d{14}", | ||
"FI": "\\d{14}", | ||
"FR": "\\d{10}[\\dA-Z]{11}\\d{2}", | ||
"GE": "[\\dA-Z]{2}\\d{16}", | ||
"DE": "\\d{18}", | ||
"GI": "[A-Z]{4}[\\dA-Z]{15}", | ||
"GR": "\\d{7}[\\dA-Z]{16}", | ||
"GL": "\\d{14}", | ||
"GT": "[\\dA-Z]{4}[\\dA-Z]{20}", | ||
"HU": "\\d{24}", | ||
"IS": "\\d{22}", | ||
"IE": "[\\dA-Z]{4}\\d{14}", | ||
"IL": "\\d{19}", | ||
"IT": "[A-Z]\\d{10}[\\dA-Z]{12}", | ||
"KZ": "\\d{3}[\\dA-Z]{13}", | ||
"KW": "[A-Z]{4}[\\dA-Z]{22}", | ||
"LV": "[A-Z]{4}[\\dA-Z]{13}", | ||
"LB": "\\d{4}[\\dA-Z]{20}", | ||
"LI": "\\d{5}[\\dA-Z]{12}", | ||
"LT": "\\d{16}", | ||
"LU": "\\d{3}[\\dA-Z]{13}", | ||
"MK": "\\d{3}[\\dA-Z]{10}\\d{2}", | ||
"MT": "[A-Z]{4}\\d{5}[\\dA-Z]{18}", | ||
"MR": "\\d{23}", | ||
"MU": "[A-Z]{4}\\d{19}[A-Z]{3}", | ||
"MC": "\\d{10}[\\dA-Z]{11}\\d{2}", | ||
"MD": "[\\dA-Z]{2}\\d{18}", | ||
"ME": "\\d{18}", | ||
"NL": "[A-Z]{4}\\d{10}", | ||
"NO": "\\d{11}", | ||
"PK": "[\\dA-Z]{4}\\d{16}", | ||
"PS": "[\\dA-Z]{4}\\d{21}", | ||
"PL": "\\d{24}", | ||
"PT": "\\d{21}", | ||
"RO": "[A-Z]{4}[\\dA-Z]{16}", | ||
"SM": "[A-Z]\\d{10}[\\dA-Z]{12}", | ||
"SA": "\\d{2}[\\dA-Z]{18}", | ||
"RS": "\\d{18}", | ||
"SK": "\\d{20}", | ||
"SI": "\\d{15}", | ||
"ES": "\\d{20}", | ||
"SE": "\\d{20}", | ||
"CH": "\\d{5}[\\dA-Z]{12}", | ||
"TN": "\\d{20}", | ||
"TR": "\\d{5}[\\dA-Z]{17}", | ||
"AE": "\\d{3}\\d{16}", | ||
"GB": "[A-Z]{4}\\d{14}", | ||
"VG": "[\\dA-Z]{4}\\d{16}" | ||
}; | ||
bbanpattern = bbancountrypatterns[countrycode]; | ||
if (typeof bbanpattern !== "undefined") { | ||
ibanregexp = new RegExp("^[A-Z]{2}\\d{2}" + bbanpattern + "$", ""); | ||
if (!ibanregexp.test(iban)) { | ||
return false; | ||
} | ||
} | ||
ibancheck = iban.substring(4, iban.length) + iban.substring(0, 4); | ||
for (i = 0; i < ibancheck.length; i++) { | ||
charAt = ibancheck.charAt(i); | ||
if (charAt !== "0") { | ||
leadingZeroes = false; | ||
} | ||
if (!leadingZeroes) { | ||
ibancheckdigits += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(charAt); | ||
} | ||
} | ||
for (p = 0; p < ibancheckdigits.length; p++) { | ||
cChar = ibancheckdigits.charAt(p); | ||
cOperator = "" + cRest + "" + cChar; | ||
cRest = cOperator % 97; | ||
} | ||
return cRest === 1; | ||
} | ||
exports.isIBAN = isIBAN; | ||
function isFloat(input, options) { | ||
options = options || {}; | ||
var check = input !== "" && input == +input && input !== (input | 0); | ||
return check && (!options.hasOwnProperty("max") || +input <= options.max) && (!options.hasOwnProperty("min") || +input >= options.min); | ||
} | ||
exports.isFloat = isFloat; | ||
function isIMEI(input) { | ||
return input.length === 15 && areDigits(input) && isLuhn(input); | ||
} | ||
exports.isIMEI = isIMEI; | ||
function isInteger(input, options) { | ||
options = options || {}; | ||
var intWithoutZero = /^(?:[-+]?(?:0|[1-9][0-9]*))$/; | ||
var intWithZero = /^[-+]?[0-9]+$/; | ||
var regex = options.hasOwnProperty("allow_leading_zeroes") && !options.allow_leading_zeroes ? intWithoutZero : intWithZero; | ||
if (!regex.test(input)) { | ||
return false; | ||
} | ||
input = parseInt(input, 10); | ||
return (!options.hasOwnProperty("min") || input >= options.min) && (!options.hasOwnProperty("max") || input <= options.max); | ||
} | ||
exports.isInteger = isInteger; | ||
function isIPv4(input) { | ||
if (!/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(input)) { | ||
return false; | ||
} | ||
var tokens = input.split("."); | ||
for (var i = 0; i < tokens.length; i++) { | ||
if (parseInt(tokens[i], 10) > 255) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
exports.isIPv4 = isIPv4; | ||
function isISBN10(input) { | ||
var checksum = 0; | ||
var i = void 0; | ||
if (!/^(?:[0-9]{9}X|[0-9]{10})$/.test(input)) { | ||
return false; | ||
} | ||
for (i = 0; i < 9; i++) { | ||
checksum += (i + 1) * input.charAt(i); | ||
} | ||
if (input.charAt(9) === 'X') { | ||
checksum += 10 * 10; | ||
} else { | ||
checksum += 10 * input.charAt(9); | ||
} | ||
if (checksum % 11 === 0) { | ||
return !!input; | ||
} | ||
return false; | ||
} | ||
function isISBN13(input) { | ||
var checksum = 0; | ||
var i = void 0; | ||
var factor = [1, 3]; | ||
if (!/^(?:[0-9]{13})$/.test(input)) { | ||
return false; | ||
} | ||
for (i = 0; i < 12; i++) { | ||
checksum += factor[i % 2] * input.charAt(i); | ||
} | ||
if (input.charAt(12) - (10 - checksum % 10) % 10 === 0) { | ||
return !!input; | ||
} | ||
return false; | ||
} | ||
function isISBN(input) { | ||
return isISBN10(input) || isISBN13(input); | ||
} | ||
exports.isISBN = isISBN; | ||
function isISSN(input) { | ||
var checksum = 0; | ||
if (input.length === 8) { | ||
input = "0" + input; | ||
} | ||
if (!/^\d{4}\-?\d{3}[\dX]$/.test(input)) { | ||
return false; | ||
} | ||
input = input.replace("-", ""); | ||
for (var i = 0; i < input.length; i++) { | ||
var digit = input[i]; | ||
checksum += (digit === 'X' ? 10 : +digit) * (8 - i); | ||
} | ||
return checksum % 11 === 0; | ||
} | ||
exports.isISSN = isISSN; | ||
function isLuhn(input) { | ||
var modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; | ||
var sum = 0; | ||
var tmp; | ||
var multiply = false; | ||
for (var i = input.length - 1; i >= 0; i--) { | ||
tmp = parseInt(input.charAt(i), 10); | ||
if (multiply && tmp !== 0) { | ||
tmp *= 2; | ||
if (tmp > 9) { | ||
tmp -= 9; | ||
} | ||
} | ||
multiply = !multiply; | ||
sum += tmp; | ||
} | ||
return sum % modulo === 0; | ||
} | ||
exports.isLuhn = isLuhn; | ||
function isMobilePhoneFr(input) { | ||
return (/^(0)[67]\d{8}$/.test(input) | ||
); | ||
} | ||
exports.isMobilePhoneFr = isMobilePhoneFr; | ||
function handleSpecialCodes(nirpp) { | ||
if (nirpp.indexOf('A') !== -1) { | ||
return { | ||
withoutLetters: nirpp.replace("A", "0"), | ||
offset: 1000000 | ||
}; | ||
} | ||
if (nirpp.indexOf('B') !== -1) { | ||
return { | ||
withoutLetters: nirpp.replace("B", "0"), | ||
offset: 2000000 | ||
}; | ||
} | ||
return { | ||
withoutLetters: nirpp, | ||
offset: 0 | ||
}; | ||
} | ||
function parse(nirpp) { | ||
var _handleSpecialCodes = handleSpecialCodes(nirpp); | ||
var withoutLetters = _handleSpecialCodes.withoutLetters; | ||
var offset = _handleSpecialCodes.offset; | ||
return parseInt(withoutLetters, 10) - offset; | ||
} | ||
function generateControlKey(nirpp) { | ||
return 97 - parse(nirpp) % 97; | ||
} | ||
function decompose(input) { | ||
return { | ||
sexe: parseInt(input.slice(0, 1), 10), | ||
an: parseInt(input.slice(1, 3), 10), | ||
mois: parseInt(input.slice(3, 5), 10), | ||
dept: input.slice(5, 7), | ||
ville: parseInt(input.slice(7, 10), 10), | ||
ordre: parseInt(input.slice(10, 13), 10), | ||
key: parseInt(input.slice(-2), 10) | ||
}; | ||
} | ||
function isNIR(input) { | ||
if (input.length != 15) { | ||
return false; | ||
} | ||
try { | ||
var dec = decompose(input); | ||
if (!(dec.sexe === 1 || dec.sexe === 2 || dec.sexe === 8)) { | ||
return false; | ||
} | ||
var computedKey = generateControlKey(input.slice(0, 13)); | ||
return computedKey === dec.key; | ||
} catch (e) { | ||
return false; | ||
} | ||
} | ||
exports.isNIR = isNIR; | ||
function isRIB(str) { | ||
if (str.length !== 23) { | ||
return false; | ||
} | ||
var compte = str.slice(10, 21); | ||
compte = compte.replace(/[A|J]/g, "1").replace(/[B|K|S]/g, "2").replace(/[C|L|T]/g, "3").replace(/[D|M|U]/g, "4").replace(/[E|N|V]/g, "5").replace(/[F|O|W]/g, "6").replace(/[G|P|X]/g, "7").replace(/[H|Q|Y]/g, "8").replace(/[I|R|Z]/g, "9"); | ||
var key = str.slice(21, 23); | ||
str = str.slice(0, 10) + compte + key; | ||
if (!areDigits(str)) { | ||
return false; | ||
} | ||
var k = parseInt(key, 10); | ||
var banque = str.slice(0, 5); | ||
var guichet = str.slice(5, 10); | ||
var cp = parseInt(compte, 10); | ||
var ki = banque % 97; | ||
ki = ki * 100000 + parseInt(guichet, 10); | ||
ki = ki % 97; | ||
ki = ki * Math.pow(10, 11) + cp; | ||
ki = ki % 97; | ||
ki = ki * 100; | ||
ki = ki % 97; | ||
ki = 97 - ki; | ||
return ki === k; | ||
} | ||
exports.isRIB = isRIB; | ||
function isSEDOL(text) { | ||
try { | ||
var input = text.substr(0, 6); | ||
var check_digit = checkKey(input); | ||
return text === input + check_digit; | ||
} catch (e) { | ||
return false; | ||
} | ||
return false; | ||
} | ||
function checkKey(num) { | ||
var weight = [1, 3, 1, 7, 3, 9]; | ||
if (num.search(/^[0-9BCDFGHJKLMNPQRSTVWXYZ]{6}$/) == -1) { | ||
throw "Invalid SEDOL number '" + num + "'"; | ||
} | ||
var sum = 0; | ||
for (var i = 0; i < num.length; i++) { | ||
sum += weight[i] * parseInt(num.charAt(i), 36); | ||
} | ||
var check = (10 - sum % 10) % 10; | ||
return check.toString(); | ||
} | ||
exports.isSEDOL = isSEDOL; | ||
function isSIREN(input) { | ||
return input.length === 9 && areDigits(input) && isLuhn(input, 10); | ||
} | ||
exports.isSIREN = isSIREN; | ||
function isSIRET(input) { | ||
var precheck = input.length === 14 && areDigits(input); | ||
var siren = input.slice(0, 9); | ||
return precheck && (isLuhn(siren, 10) || siren === "356000000" && isLuhn(input, 5)); | ||
} | ||
exports.isSIRET = isSIRET; | ||
function isStrongPassword(input, acceptings) { | ||
var strength = 0; | ||
if (input.length < 8) { | ||
return 0; | ||
} | ||
if (acceptings && !areIn(input, acceptings)) { | ||
return -1; | ||
} | ||
if (input.length > 8) strength += 1; | ||
if (input.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) strength += 1; | ||
if (input.match(/([a-zA-Z])/) && input.match(/([0-9])/)) strength += 1; | ||
if (input.match(/([!,%,&,@,#,$,^,*,?,_,~])/)) strength += 1; | ||
if (input.match(/(.*[!,%,&,@,#,$,^,*,?,_,~].*[!,%,&,@,#,$,^,*,?,_,~])/)) strength += 1; | ||
return strength; | ||
} | ||
exports.isStrongPassword = isStrongPassword; | ||
function isTime(input) { | ||
return (/^([01][0-9]|2[0-3])(:[0-5][0-9]){1,2}$/.test(input) | ||
); | ||
} | ||
exports.isTime = isTime; | ||
function isURL(str) { | ||
var pattern = new RegExp('^(https?:\\/\\/)?' + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + '((\\d{1,3}\\.){3}\\d{1,3}))' + '(\\:\\d+)?' + '(\\/[-a-z\\d%@_.~+&:]*)*' + '(\\?[;&a-z\\d%@_.,~+&:=-]*)?' + '(\\#[-a-z\\d_]*)?$', 'i'); | ||
return pattern.test(str); | ||
} | ||
exports.isURL = isURL; | ||
function sanitize(input, options) { | ||
var safe = input; | ||
if (options.keepChars) { | ||
var i = 0; | ||
var clean = ""; | ||
var _iteratorNormalCompletion2 = true; | ||
var _didIteratorError2 = false; | ||
var _iteratorError2 = undefined; | ||
try { | ||
for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { | ||
var c = _step2.value; | ||
if (options.keepChars.indexOf(c) >= 0) { | ||
clean += c; | ||
} | ||
} | ||
} catch (err) { | ||
_didIteratorError2 = true; | ||
_iteratorError2 = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion2 && _iterator2.return) { | ||
_iterator2.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError2) { | ||
throw _iteratorError2; | ||
} | ||
} | ||
} | ||
safe = clean; | ||
} | ||
return safe; | ||
} | ||
exports.sanitize = sanitize; | ||
function validRegex(input, reg) { | ||
return reg.test(input); | ||
} | ||
exports.validRegex = validRegex; | ||
}); |
@@ -5,3 +5,3 @@ { | ||
"groupId": "slongepee", | ||
"version": "0.8.1", | ||
"version": "0.8.2", | ||
"main": "distrib/format-validator.min.js", | ||
@@ -20,7 +20,8 @@ "name": "format-validator", | ||
"format", | ||
"email", | ||
"integer", | ||
"integer","float","IPv4","URL", | ||
"date","time", | ||
"email","password","regex", | ||
"nir", | ||
"MobilePhone", | ||
"EAN13", | ||
"EAN13","ISBN","ISSN", | ||
"Luhn", | ||
@@ -32,2 +33,3 @@ "numéro de sécurité sociale", | ||
"IMEI", | ||
"RIB","IBAN","SEDOL", | ||
"front-end" | ||
@@ -34,0 +36,0 @@ ], |
@@ -46,2 +46,2 @@ # format-validator | ||
See [Demo](https://sylvain59650.github.io/format-validator/) | ||
See [API & Demo](https://sylvain59650.github.io/format-validator/) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
22256
542