UNPKG

@webilix/helper-library

Version:

JavaScript/TypeScript programming helper library.

73 lines 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.regexpRGBColor = exports.regexpHSLColor = exports.regexpHexColor = exports.regexpIP4 = exports.regexpUrl = exports.regexpDomain = exports.regexpPassword = exports.regexpUsername = exports.regexpNumeric = exports.regexpMobile = exports.regexpEmail = exports.regexpJsonDate = exports.regexpTime = exports.regexpDate = exports.reReplace = exports.reFind = exports.reVerify = exports.reGet = void 0; //#region REGULAR EXPRESSION METHODS const reGet = (pattern, fullLine = true, flags) => fullLine ? new RegExp(`^${pattern}$`, flags) : new RegExp(pattern, flags); exports.reGet = reGet; const reVerify = (pattern, text, flags) => (0, exports.reGet)(pattern, true, flags).test(text); exports.reVerify = reVerify; const reFind = (pattern, text, flags) => text.match((0, exports.reGet)(pattern, false, flags || 'g')) || []; exports.reFind = reFind; const reReplace = (pattern, text, replaceWith = '', flags) => text.replace((0, exports.reGet)(pattern, false, flags || 'g'), replaceWith); exports.reReplace = reReplace; //#endregion //#region REGULAR EXPRESSIONS exports.regexpDate = `[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])`; exports.regexpTime = `([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]`; exports.regexpJsonDate = exports.regexpDate + `T` + exports.regexpTime + `.[0-9][0-9][0-9]Z`; exports.regexpEmail = `(([^<>()[\\]\\\\.,;:\\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,}))`; exports.regexpMobile = `09([0-9]{9}|[0-9]{2}[- ]{1}[0-9]{3}[- ]{1}[0-9]{4})`; const regexpNumeric = (minLength, maxLength) => { if (minLength !== undefined && minLength <= 0) throw new Error('minLength must be bigger than zero'); if (maxLength !== undefined && maxLength <= 0) throw new Error('maxLength must be bigger than zero'); if (minLength === undefined) return `[0-9]{1,}`; if (maxLength === undefined) return `[0-9]{${minLength},}`; if (maxLength !== undefined && minLength > maxLength) throw new Error('maxLength must be equal or bigger than minLength'); return `[0-9]{${minLength}${minLength === maxLength ? '' : `,${maxLength}`}}`; }; exports.regexpNumeric = regexpNumeric; const regexpUsername = (length = 3, useDash = true, useDot = true, startWithChar = true, endWithChar = true) => { if (length < 3) throw new Error('length must be equal or bigger than 3'); const middleLength = length - (startWithChar ? 1 : 0) - (endWithChar ? 1 : 0); const middle = `[a-z0-9${useDash ? '-' : ''}${useDot ? '.' : ''}]{${middleLength},}`; return `${startWithChar ? '[a-z]{1}' : ''}${middle}${endWithChar ? '[a-z]{1}' : ''}`; }; exports.regexpUsername = regexpUsername; const regexpPassword = (length = 8, forceLowerCase = true, forceUpperCase = true, forceNumber = true) => { const lCase = forceLowerCase ? '(?=.*[a-z])' : ''; const uCase = forceUpperCase ? '(?=.*[A-Z])' : ''; const number = forceNumber ? '(?=.*[0-9])' : ''; return `${lCase}${uCase}${number}.{${length},}`; }; exports.regexpPassword = regexpPassword; exports.regexpDomain = `(([a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]|[a-zA-Z0-9])\\.)*` + `([a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]|[a-zA-Z0-9]){1}(\\.[a-zA-Z]{2,})+`; const regexpUrl = (full = false) => full ? `https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9]{2,}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=,]*)` : `https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9]{2,}\\b[/]{0,1}`; exports.regexpUrl = regexpUrl; exports.regexpIP4 = `(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.` + `(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.` + `(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.` + `(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)`; exports.regexpHexColor = `#([0-9a-fA-F]{3}){1,2}`; exports.regexpHSLColor = `hsl\\(` + `[ ]{0,}(0|360|35\\d|3[0-4]\\d|[12]\\d\\d|0?\\d?\\d)[ ]{0,},` + `[ ]{0,}(0|100|\\d{1,2})%[ ]{0,},` + `[ ]{0,}(0|100|\\d{1,2})%[ ]{0,}` + `\\)`; exports.regexpRGBColor = `rgb\\(` + `[ ]{0,}(0|255|25[0-4]|2[0-4]\\d|1\\d\\d|0?\\d?\\d)[ ]{0,},` + `[ ]{0,}(0|255|25[0-4]|2[0-4]\\d|1\\d\\d|0?\\d?\\d)[ ]{0,},` + `[ ]{0,}(0|255|25[0-4]|2[0-4]\\d|1\\d\\d|0?\\d?\\d)[ ]{0,}` + `\\)`; //#endregion //# sourceMappingURL=regex.js.map