Показать сообщение отдельно
  #1 (permalink)  
Старый 08.04.2023, 22:22
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 222

Результат совпадения в regexp не работает в качестве ключа хеша. Что не так?
Краткий пример:

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.

Где ошибка?
Ответить с цитированием