UNPKG

foop

Version:

interfaces that describe their intentions.

33 lines (31 loc) 8.46 kB
// const urlRegExp = new RegExp(/https?/) // const isUrlReg = { // test(value) { // return (/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i).test(value) // }, // } var url = require('./url') // dateString match m/d/yy and mm/dd/yyyy, allowing any combination of one or two digits for the day and month, and two or four digits for the year // eppPhone match extensible provisioning protocol format // nanpPhone match north american number plan format // time match hours, minutes, and seconds, 24-hour clock module.exports = { affirmative: /^(?:1|t(?:rue)?|y(?:es)?|ok(?:ay)?)$/, alphaNumeric: /^[A-Za-z0-9]+$/, caPostalCode: /^(?!.*[DFIOQU])[A-VXY][0-9][A-Z]\s?[0-9][A-Z][0-9]$/, creditCard: /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/, dateString: /^(1[0-2]|0?[1-9])([\/-])(3[01]|[12][0-9]|0?[1-9])(?:\2)(?:[0-9]{2})?[0-9]{2}$/, email: /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i, // eslint-disable-line no-control-regex eppPhone: /^\+[0-9]{1,3}\.[0-9]{4,14}(?:x.+)?$/, hexadecimal: /^(?:0x)?[0-9a-fA-F]+$/, hexColor: /^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/, ipv4: /^(?:(?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/, ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i, nanpPhone: /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/, socialSecurityNumber: /^(?!000|666)[0-8][0-9]{2}-?(?!00)[0-9]{2}-?(?!0000)[0-9]{4}$/, timeString: /^(2[0-3]|[01]?[0-9]):([0-5]?[0-9]):([0-5]?[0-9])$/, ukPostCode: /^[A-Z]{1,2}[0-9RCHNQ][0-9A-Z]?\s?[0-9][ABD-HJLNP-UW-Z]{2}$|^[A-Z]{2}-?[0-9]{4}$/, url: url, usZipCode: /^[0-9]{5}(?:-[0-9]{4})?$/, } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IHVybFJlZ0V4cCA9IG5ldyBSZWdFeHAoL2h0dHBzPy8pXG4vLyBjb25zdCBpc1VybFJlZyA9IHtcbi8vICAgdGVzdCh2YWx1ZSkge1xuLy8gICAgIHJldHVybiAoL14oPzooPzooPzpodHRwcz98ZnRwKTopP1xcL1xcLykoPzpcXFMrKD86OlxcUyopP0ApPyg/Oig/ISg/OjEwfDEyNykoPzpcXC5cXGR7MSwzfSl7M30pKD8hKD86MTY5XFwuMjU0fDE5MlxcLjE2OCkoPzpcXC5cXGR7MSwzfSl7Mn0pKD8hMTcyXFwuKD86MVs2LTldfDJcXGR8M1swLTFdKSg/OlxcLlxcZHsxLDN9KXsyfSkoPzpbMS05XVxcZD98MVxcZFxcZHwyWzAxXVxcZHwyMlswLTNdKSg/OlxcLig/OjE/XFxkezEsMn18MlswLTRdXFxkfDI1WzAtNV0pKXsyfSg/OlxcLig/OlsxLTldXFxkP3wxXFxkXFxkfDJbMC00XVxcZHwyNVswLTRdKSl8KD86KD86W2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0tKikqW2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0rKSg/OlxcLig/OlthLXpcXHUwMGExLVxcdWZmZmYwLTldLSopKlthLXpcXHUwMGExLVxcdWZmZmYwLTldKykqKD86XFwuKD86W2EtelxcdTAwYTEtXFx1ZmZmZl17Mix9KSkuPykoPzo6XFxkezIsNX0pPyg/OlsvPyNdXFxTKik/JC9pKS50ZXN0KHZhbHVlKVxuLy8gICB9LFxuLy8gfVxuY29uc3QgdXJsID0gcmVxdWlyZSgnLi91cmwnKVxuXG4vLyBkYXRlU3RyaW5nIG1hdGNoIG0vZC95eSBhbmQgbW0vZGQveXl5eSwgYWxsb3dpbmcgYW55IGNvbWJpbmF0aW9uIG9mIG9uZSBvciB0d28gZGlnaXRzIGZvciB0aGUgZGF5IGFuZCBtb250aCwgYW5kIHR3byBvciBmb3VyIGRpZ2l0cyBmb3IgdGhlIHllYXJcbi8vIGVwcFBob25lIG1hdGNoIGV4dGVuc2libGUgcHJvdmlzaW9uaW5nIHByb3RvY29sIGZvcm1hdFxuLy8gbmFucFBob25lIG1hdGNoIG5vcnRoIGFtZXJpY2FuIG51bWJlciBwbGFuIGZvcm1hdFxuLy8gdGltZSBtYXRjaCBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMsIDI0LWhvdXIgY2xvY2tcbm1vZHVsZS5leHBvcnRzID0ge1xuICBhZmZpcm1hdGl2ZTogL14oPzoxfHQoPzpydWUpP3x5KD86ZXMpP3xvayg/OmF5KT8pJC8sXG4gIGFscGhhTnVtZXJpYzogL15bQS1aYS16MC05XSskLyxcbiAgY2FQb3N0YWxDb2RlOiAvXig/IS4qW0RGSU9RVV0pW0EtVlhZXVswLTldW0EtWl1cXHM/WzAtOV1bQS1aXVswLTldJC8sXG4gIGNyZWRpdENhcmQ6IC9eKD86KDRbMC05XXsxMn0oPzpbMC05XXszfSk/KXwoNVsxLTVdWzAtOV17MTR9KXwoNig/OjAxMXw1WzAtOV17Mn0pWzAtOV17MTJ9KXwoM1s0N11bMC05XXsxM30pfCgzKD86MFswLTVdfFs2OF1bMC05XSlbMC05XXsxMX0pfCgoPzoyMTMxfDE4MDB8MzVbMC05XXszfSlbMC05XXsxMX0pKSQvLFxuICBkYXRlU3RyaW5nOiAvXigxWzAtMl18MD9bMS05XSkoW1xcLy1dKSgzWzAxXXxbMTJdWzAtOV18MD9bMS05XSkoPzpcXDIpKD86WzAtOV17Mn0pP1swLTldezJ9JC8sXG4gIGVtYWlsOiAvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKUAoKChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpXFwuKSsoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkkL2ksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuICBlcHBQaG9uZTogL15cXCtbMC05XXsxLDN9XFwuWzAtOV17NCwxNH0oPzp4LispPyQvLFxuICBoZXhhZGVjaW1hbDogL14oPzoweCk/WzAtOWEtZkEtRl0rJC8sXG4gIGhleENvbG9yOiAvXiM/KFswLTlhLWZBLUZdezN9fFswLTlhLWZBLUZdezZ9KSQvLFxuICBpcHY0OiAvXig/Oig/OlxcZHxbMS05XVxcZHwxXFxkezJ9fDJbMC00XVxcZHwyNVswLTVdKVxcLil7M30oPzpcXGR8WzEtOV1cXGR8MVxcZHsyfXwyWzAtNF1cXGR8MjVbMC01XSkkLyxcbiAgaXB2NjogL14oKD89Lio6OikoPyEuKjo6Lis6OikoOjopPyhbXFxkQS1GXXsxLDR9Oig6fFxcYil8KXs1fXwoW1xcZEEtRl17MSw0fTopezZ9KSgoKFtcXGRBLUZdezEsNH0oKD8hXFwzKTo6fDpcXGJ8JCkpfCg/IVxcMlxcMykpezJ9fCgoKDJbMC00XXwxXFxkfFsxLTldKT9cXGR8MjVbMC01XSlcXC4/XFxiKXs0fSkkL2ksXG4gIG5hbnBQaG9uZTogL15cXCg/KFswLTldezN9KVxcKT9bLS4gXT8oWzAtOV17M30pWy0uIF0/KFswLTldezR9KSQvLFxuICBzb2NpYWxTZWN1cml0eU51bWJlcjogL14oPyEwMDB8NjY2KVswLThdWzAtOV17Mn0tPyg/ITAwKVswLTldezJ9LT8oPyEwMDAwKVswLTldezR9JC8sXG4gIHRpbWVTdHJpbmc6IC9eKDJbMC0zXXxbMDFdP1swLTldKTooWzAtNV0/WzAtOV0pOihbMC01XT9bMC05XSkkLyxcbiAgdWtQb3N0Q29kZTogL15bQS1aXXsxLDJ9WzAtOVJDSE5RXVswLTlBLVpdP1xccz9bMC05XVtBQkQtSEpMTlAtVVctWl17Mn0kfF5bQS1aXXsyfS0/WzAtOV17NH0kLyxcbiAgdXJsLFxuICB1c1ppcENvZGU6IC9eWzAtOV17NX0oPzotWzAtOV17NH0pPyQvLFxufVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0FBTUFBLEdBQUssQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzs7Ozs7O0FBTTVCLE1BQU0sQ0FBQyxPQUFPLEdBQUc7RUFDZixXQUFXLEVBQUUsc0NBQXNDO0VBQ25ELFlBQVksRUFBRSxnQkFBZ0I7RUFDOUIsWUFBWSxFQUFFLHFEQUFxRDtFQUNuRSxVQUFVLEVBQUUsdUtBQXVLO0VBQ25MLFVBQVUsRUFBRSwrRUFBK0U7RUFDM0YsS0FBSyxFQUFFLHk0QkFBeTRCO0VBQ2g1QixRQUFRLEVBQUUscUNBQXFDO0VBQy9DLFdBQVcsRUFBRSx1QkFBdUI7RUFDcEMsUUFBUSxFQUFFLHFDQUFxQztFQUMvQyxJQUFJLEVBQUUseUZBQXlGO0VBQy9GLElBQUksRUFBRSxvS0FBb0s7RUFDMUssU0FBUyxFQUFFLG9EQUFvRDtFQUMvRCxvQkFBb0IsRUFBRSw4REFBOEQ7RUFDcEYsVUFBVSxFQUFFLG1EQUFtRDtFQUMvRCxVQUFVLEVBQUUsaUZBQWlGO0VBQzdGLEtBQUEsR0FBRztFQUNILFNBQVMsRUFBRSwwQkFBMEI7Q0FDdEM7In0=