- Автор темы
- #1
Есть функция транслитерации, я в нее указал какие на какие символы нужно заменять:
Но некоторые символы не хотят заменяться, вернее при их указании в функции она вообще не работает, эти символы: знак вопроса (?) и восклицательный знак (!).
Скорее всего это спецсимволы, я пробовал их экранировать слешем, но результат не дало.
HTML:
function inp_translit (){
var _inner_text = document.getElementById("result_name_hidden").value;
document.getElementById("code_name").value = _inner_text.toLowerCase().translit();
}
String.prototype.translit = (function(){
var L = {
'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh', 'з':'z',
'и':'i', 'й':'y', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o', 'п':'p', 'р':'r',
'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'c', 'ч':'ch', 'ш':'sh', 'щ':'shch',
'ъ':'', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu', 'я':'ya', ' ':'_', 'і':'i', 'ў':'u',
'є':'e', 'ї':'i', ',':'_', '.':'_', '(':'_', ')':'_', ':':'_', '«':'_', '—':'_', '»':'_',
'-':'_'
},
r = '',
k;
for (k in L) r += k;
r = new RegExp('[' + r + ']', 'g');
k = function(a){
return a in L ? L[a] : '';
};
return function(){
return this.replace(r, k);
};
})();
Но некоторые символы не хотят заменяться, вернее при их указании в функции она вообще не работает, эти символы: знак вопроса (?) и восклицательный знак (!).
Скорее всего это спецсимволы, я пробовал их экранировать слешем, но результат не дало.