Один из способов - обработать входные данные регулярного выражения так, чтобы они, например, заменили 'ä' на (ae | ä) ', а не жестко закодировали сопоставления с регулярными выражениями. Я совершенно не осведомлен о javascript (хорошо, я знаю document.write (), но это все) - но здесь то же самое в псевдокоде;
вместо того, чтобы
regexp_match("Grüße|Gruesse",somestring)
Вы должны сделать что-то вроде:
mappings = (("ä","ae"),("ö","oe"),("ü","ue"))
def my_regexp_match(regexp,input) {
for key,value in mappings {
new_regexp = regexp.replace(key,"("+key+"|"+value+")")
}
regexp_match(new_regexp,input)
}
my_regexp_match("Grüße",somestring)
Извините за то, что я так "питоничен" - я не знаю, есть ли у вас структура, похожая на re.compile () в javascript, но если вы это сделаете - вы должны использовать for -loop при компиляции средства сравнения, а не в my_regexp_match )