Краткий пример:
function search_replace(entry) {
const slovar = {};
slovar['золото'] = 'Au';
var obj = document.forms[0].elements[entry];
var str = obj.value;
re = /золото/g;
str = str.replace(re, slovar[$1]); // НЕ работает
re = /золото/g;
str = str.replace(re, $1); // работает
obj.value = str;
}
Т.е. регулярное выражение нормально ловит слово "золото" и помещает его в $1, но при этом не понимает конструкцию slovar[$1], хотя хеш вроде бы как рабочий и slovar['золото'] выдает Au.
Где ошибка?