Результат совпадения в 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. Где ошибка?  | 
	
		
 Цитата: 
	
 str = str.replace(re, '$1'); Цитата: 
	
 $1 для замены можно использовать только внутри строки. Но и $1 ничего не даст. это ссылка на первую группу в регулярном выражении. А у вас нет там групп.  | 
	
		
 
const slovar = {};
slovar['золото'] = 'Au';
let str = 'нашел золото';
const re = /золото/g;
str = str.replace(re, (m) => slovar[m]);
alert(str) // 'нашел Au'
 | 
	
		
 Спасибо за ответ! Из него я понял, что для подобных задач лучше использовать другой язык программирования. Сделал это на Perl, но столкнулся с другой проблемой. Данные не хотят меняться в textarea в современных браузерах. Работает только в IE11. 
	 | 
| Часовой пояс GMT +3, время: 14:16. |