Wenn Sie eine Variable innerhalb eines regulären Ausdrucks ersetzen müssen, können Sie die übliche Zeichenfolgeninterpolation in JavaScript nicht verwenden. Sie müssen ein RegExp-Objekt erstellen.
Angenommen, Sie haben einen komplexen regulären Ausdruck wie /^(?!.*(\w{2}).*\1)\s*(?:(?:en|de|fr|it|es)\b\s*){5}$/
und Sie müssen die Teile (?:en|de|fr|it|es)
und {5}
dynamisch bearbeiten.
Vergessen Sie nicht die Backslashes zu escapen
function generate_regex(array) {
return new RegExp(
`^(?!.*(\\w{2}).*\\1)\\s*(?:(?:${array.join('|')})\\b\\s*){${
array.length
}}$`
)
}
generate_regex(['en', 'de', 'fr', 'it', 'es'])
/^(?!.*(\w{2}).*\1)\s*(?:(?:en|de|fr|it|es)\b\s*){5}$/
generate_regex(['en', 'de', 'fr'])
/^(?!.*(\w{2}).*\1)\s*(?:(?:en|de|fr)\b\s*){3}$/
Beispiel für String.replace()
const replace = 'regex'
const regex = new RegExp(replace, 'g')
'mystring'.replace(regex, 'newstring')