здравствуйте! сам я не пишу на js и не знаком особо с его синтаксисом, поэтому затрудняюсь найти ошибку в коде. нашел на просторах сети следующий скрипт, аналог функции strtr на php: function strtr (str, from, to) { /* * strtr by Kedo * 2009 * Example 1: strtr('hi all, I said hello', {'hi':'hello', 'hello':'hi'}); //hello all, I said hi * Example 2: strtr('abcdcdb', 'ab', 'AB')); //ABcdcdB */ if (typeof from === 'object') { var cmpStr = ''; for (var j=0; j < str.length; j++){ cmpStr += '0'; } var offset = 0; var find = -1; var addStr = ''; for (fr in from) { offset = 0; while ((find = str.indexOf(fr, offset)) != -1){ if (parseInt(cmpStr.substr(find, fr.length)) != 0){ offset = find + 1; continue; } for (var k =0; k < from[fr].length; k++){ addStr += '1'; } cmpStr = cmpStr.substr(0, find) + addStr + cmpStr.substr(find + fr.length, cmpStr.length - (find + fr.length)); str = str.substr(0, find) + from[fr] + str.substr(find + fr.length, str.length - (find + fr.length)); offset = find + from[fr].length + 1; addStr = ''; } } return str; } for(var i = 0; i < from.length; i++) { str = str.replace(new RegExp(from.charAt(i),'g'), to.charAt(i)); } return str; } использую его для транслитерации input поля, но смотрите что получается (первое поле - где я пишу, во втором поле динамически отображается перевод): тут все хорошо работает, но что, если ввести два одинаковых символа подряд? видно, что при повторении одинаковых символов подряд, каждый символ через один не заменяется. не могли бы показать в чем проблема и исправить ее в коде? заранее благодарю.