UNPKG

regexp-coder

Version:

A Javascript/Typescript RegExp Coder

48 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RegExpLib = void 0; const regExpCoder_1 = require("./regExpCoder"); class RegExpLib { /** * Get expression of email addresses * (Email Address Spec)[https://tools.ietf.org/html/rfc5322#section-3.4] */ static getEmailAddressRegExp() { const separator = '.'; const partRe = /[a-zA-Z0-9!#$&'*+\-/=?^_`{|}~]+/; const reLocal = this.aba(partRe, separator); const reDomain = this.aba(partRe, separator); const re = new regExpCoder_1.RegExpCoder().join(reLocal, '@', reDomain); return re.toRegExp(); } /** * Test a string with a specific expression. * @param exp the expression * @param value the tested string */ static test(exp, value) { const re = new regExpCoder_1.RegExpCoder() .join(exp) .enableMatchWhole() .toRegExp(exp.flags); return re.test(value); } /** * `column(separator(column))*` * For ABA pattern, e.g. `abc,def,ghi` * @param column the column expression * @param separator the separator */ static aba(column, separator) { const group = true; const notRemember = true; const re = regExpCoder_1.RegExpCoder.new() .define('$separator', separator, { group, notRemember }) .define('$column', column, { group }) .join('$column', { group }) .join('$separator', '$column', { qualifier: '*' }); return re.toRegExp('g'); } } exports.RegExpLib = RegExpLib; //# sourceMappingURL=regExpLib.js.map