issue-regex
Version:
Regular expression for matching issue references
17 lines (13 loc) • 678 B
JavaScript
// https://regex101.com/r/SQrOlx/20
const {source: organization} = /(?<organization>[a-z\d](?:[a-z\d-]{0,37}[a-z\d])?)/;
const {source: repository} = /(?<repository>[\w.-]{1,100})/;
const {source: reservedRepository} = /(?<!\/\.{1,2})/;
const {source: issueNumber} = /(?<issueNumber>[1-9]\d{0,9})/;
const {source: initialDelimiter} = /(?<!\w)/;
const fullRegex = `${initialDelimiter}(?:(?:${organization}(?:\\/${repository})?)?${reservedRepository}#)${issueNumber}\\b`;
export default function issueRegex({additionalPrefix} = {}) {
if (additionalPrefix) {
return new RegExp(fullRegex.replace('#', '#|' + additionalPrefix), 'gi');
}
return new RegExp(fullRegex, 'gi');
}