Escpae prefix and namespace when creating regex

This commit is contained in:
Paul Hatcherian 2022-12-27 21:34:15 -06:00
parent 0b58042494
commit 999339635f

View file

@ -62,11 +62,15 @@ export class DefaultTagFormatter implements TagFormatter {
};
public IsValid(tag: string): boolean {
const regexEscape = (literal: string) => literal.replace(/\W/g, '\\$&');
const tagPrefix = regexEscape(this.tagPrefix);
const namespaceSeperator = regexEscape(this.namespaceSeperator);
const namespace = regexEscape(this.namespace);
if (!!this.namespace) {
return new RegExp(`^${this.tagPrefix}[0-9]+\.[0-9]+\.[0-9]+${this.namespaceSeperator}${this.namespace}$`).test(tag);
return new RegExp(`^${tagPrefix}[0-9]+\.[0-9]+\.[0-9]+${namespaceSeperator}${namespace}$`).test(tag);
}
return new RegExp(`^${this.tagPrefix}[0-9]+\.[0-9]+\.[0-9]+$`).test(tag);
return new RegExp(`^${tagPrefix}[0-9]+\.[0-9]+\.[0-9]+$`).test(tag);
}
}