Files
SnowLuma/.pnpm-store/v11/files/bb/1bdc3d2ff6d2ae26d80b0449fd37056460e9b8e53dfce281a1f3dc1df6a2cd3f4ec25c583a42651cdcac43b88d825cb4433b6676c73a97c9f036248ff955b0
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

41 lines
1.1 KiB
Plaintext

'use strict';
var _const = require('../../data/const.cjs');
var helper = require('../../utils/helper.cjs');
var types = require('../../types.cjs');
/*
* -------------------------------------------------------------------------------
* regex matching ---------------------------------------------------------------
* -------------------------------------------------------------------------------
*/
class MatchRegex extends types.MatcherBaseClass {
match({
password
}) {
const matches = [];
Object.keys(_const.REGEXEN).forEach(name => {
const regex = _const.REGEXEN[name];
regex.lastIndex = 0; // keeps regexMatch stateless
let regexMatch;
while (regexMatch = regex.exec(password)) {
if (regexMatch) {
const token = regexMatch[0];
matches.push({
pattern: 'regex',
token,
i: regexMatch.index,
j: regexMatch.index + regexMatch[0].length - 1,
regexName: name,
regexMatch
});
}
}
});
return helper.sorted(matches);
}
}
module.exports = MatchRegex;
//# sourceMappingURL=matching.cjs.map