UNPKG

regexp-range

Version:

create regex class range string `[一-十]` `[⓪-㊿]` ...

118 lines (113 loc) 3.56 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@bluelovers/fill-range'), require('@lazy-cjk/regexp-range-table'), require('array-hyper-unique')) : typeof define === 'function' && define.amd ? define(['exports', '@bluelovers/fill-range', '@lazy-cjk/regexp-range-table', 'array-hyper-unique'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.RegexpRange = {}, global.fillRange$1, global.regexpRangeTable, global.arrayHyperUnique)); })(this, (function (exports, fillRange$1, regexpRangeTable, arrayHyperUnique) { 'use strict'; function matchRange(from, to, options = {}) { options = getOptions(options); let s = from; let e = to; let ret = []; let findFirstOne = !!options.findFirstOne; Object.keys(options.dataTables) // @ts-ignore .some(function (key) { let bool; options.dataTables[key].some(function (arr) { let i = arr.indexOf(s); let j = arr.indexOf(e, i); if (i !== -1 && j !== -1) { ret.push(...arr.slice(i, j + 1)); bool = true; return findFirstOne; } }); if (bool) { return true; } }); if (!ret || !ret.length) { return null; } arrayHyperUnique.array_unique_overwrite(ret); if (options.createRegExpString) { return toRegExpString(ret, options.createRegExpClass); } return ret; } function toRegExpString(arr, warpClass) { if (arr.length === 1) { return arr[0]; } let s = arr.join(''); return warpClass ? '[' + s + ']' : s; } function fillRange(from, to, options = {}) { options = getOptions(options); let s = from; let e = to; let ret = null; ret = matchRange(from, to, options); if (!ret && (options.arrayMode || String(s).length === 1 && String(e).length === 1)) { var _ret; let _ok; if (typeof s === 'string' && typeof e === 'string') { let a = s.charCodeAt(0); let b = e.charCodeAt(0); _ok = a <= b; } else { _ok = true; } if (_ok) { ret = fillRange$1.fill(s, e); } if (!((_ret = ret) !== null && _ret !== void 0 && _ret.length)) { ret = null; } } if (Array.isArray(ret)) { ret = ret.map(v => String(v)); } return ret; } function getOptions(options) { let opts = Object.assign({}, options); opts.dataTables = opts.dataTables || regexpRangeTable.TABLE_RANGE; return opts; } // @ts-ignore { Object.defineProperty(matchRange, "__esModule", { value: true }); Object.defineProperty(matchRange, 'matchRange', { value: matchRange }); Object.defineProperty(matchRange, 'default', { value: matchRange }); Object.defineProperty(matchRange, 'getOptions', { value: getOptions }); Object.defineProperty(matchRange, 'toRegExpString', { value: toRegExpString }); Object.defineProperty(matchRange, 'TABLE_RANGE', { value: regexpRangeTable.TABLE_RANGE }); Object.defineProperty(matchRange, 'fillRange', { value: fillRange }); } Object.defineProperty(exports, 'TABLE_RANGE', { enumerable: true, get: function () { return regexpRangeTable.TABLE_RANGE; } }); exports.default = matchRange; exports.fillRange = fillRange; exports.getOptions = getOptions; exports.matchRange = matchRange; exports.toRegExpString = toRegExpString; Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=index.umd.development.cjs.map