chrono-node
Version:
A natural language date parser in Javascript
25 lines • 894 B
JavaScript
export function repeatedTimeunitPattern(prefix, singleTimeunitPattern, connectorPattern = "\\s{0,5},?\\s{0,5}") {
const singleTimeunitPatternNoCapture = singleTimeunitPattern.replace(/\((?!\?)/g, "(?:");
return `${prefix}${singleTimeunitPatternNoCapture}(?:${connectorPattern}${singleTimeunitPatternNoCapture}){0,10}`;
}
export function extractTerms(dictionary) {
let keys;
if (dictionary instanceof Array) {
keys = [...dictionary];
}
else if (dictionary instanceof Map) {
keys = Array.from(dictionary.keys());
}
else {
keys = Object.keys(dictionary);
}
return keys;
}
export function matchAnyPattern(dictionary) {
const joinedTerms = extractTerms(dictionary)
.sort((a, b) => b.length - a.length)
.join("|")
.replace(/\./g, "\\.");
return `(?:${joinedTerms})`;
}
//# sourceMappingURL=pattern.js.map