27.07.2012, 23:18
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
function toTranslit( text ) {
return text.replace( /([а-яё])/gi, function( all, char ) {
var code = char.charCodeAt(0),
index = code == 1025 || code == 1105 ? 0 : code > 1071 ? code - 1071 : code - 1039,
t = ['yo','a','b','v','g','d','e','zh','z','i','y','k','l','m','n','o','p',
'r','s','t','u','f','h','c','ch','sh','shch','','y','','e','yu','ya'];
return char.toUpperCase() === char ? t[ index ].toUpperCase() : t[ index ];
});
}
alert( toTranslit( "абвгдеёжзийклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" ) );
alert( toTranslit( "Доброго времени суток, столкнулся с определенной задачей решение которой не смог придумать сам" ) );
|
|
27.07.2012, 23:21
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
devote,
Тут по ходу самая сложность не в кирилице - а декодировке get запроса
|
|
27.07.2012, 23:23
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от Deff
|
Тут по ходу самая сложность не в кирилице - а декодировке get запроса
|
ну дык unescape/decodeURIComponent и т.д. Не?
|
|
27.07.2012, 23:24
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
я вопроса совсем не понял если честно.. он хочет менять ссылку в адресной строке чтоль? или что?
|
|
27.07.2012, 23:31
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
<script type="text/javascript">
function ChangLat (str){
var A = " абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
var B = "_'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'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";
A = A.split('');
B = B.split("'");
str=str.split('');
Lng = str.length;
for(i=0; i < Lng; i++){
for(j=0; j < A.length; j++){
if(str[i]==A[j]){str[i]=B[j];break;}
}
} return str.join('');
}
function ChangeRus(a) {
a.value = ChangLat(a.value);
}
</script>
Привет! volky; <br />
<input id="hash-parametr-str" name="hash" type="text" size="40" onmouseout="ChangeRus(this)" onmouseover="ChangeRus(this)" onchange="ChangeRus(this)">
Совместимо с ие 6-7 (Cделал часа два назад - застрял с URL
Ксать - запятая еще не в кассу
Последний раз редактировалось Deff, 17.01.2013 в 15:27.
|
|
28.07.2012, 13:56
|
Интересующийся
|
|
Регистрация: 11.06.2012
Сообщений: 25
|
|
Deff,
Спасибо за проделанную работу, а вы можете объяснить как этот скрипт прикрутить к странице, чтобы он урл заменял... А то тут инпуты алерты... А мне по сути надо чтобы он выхватил урл, пробежался по нему и если бы встречал русский символ заменял его на латинский...
По сути организация новой ссылки работает так
<a href="{url params=[$f->id=>$o->value, page=>null]}" title="{$o->value|escape}">{$o->value|escape}</a>
если я прямо тут применю замену ссылки, то меня скорее всего кинет на 404 страницу( если я все правильно понимаю) И в принципе как можно применить функцию написанную вами выше к такой строке? Я пробовал
<a href="{url ChangLat(params=[$f->id=>$o->value, page=>null])}" title="{$o->value|escape}">{$o->value|escape}</a>
Последний раз редактировалось Elve, 28.07.2012 в 14:12.
|
|
28.07.2012, 14:15
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Elve,
10 типовых ссылок приведите, (*поскольку то что Вы привели, - отнюдь не русский, а encodeURI
|
|
28.07.2012, 15:15
|
Интересующийся
|
|
Регистрация: 11.06.2012
Сообщений: 25
|
|
Я уже приводил ссылки в начале темы, или их недостаточно? Почему я говорю о кирилице - потому, что в адресе в браузере я вижу русский, нокогда копирую оттуда получаю encodeURI
|
|
28.07.2012, 15:47
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Elve
|
Я уже приводил ссылки в начале темы, или их недостаточно? Почему я говорю о кирилице - потому, что в адресе в браузере я вижу русский, нокогда копирую оттуда получаю encodeURI
|
В каком браузере ? - войдите с Opera
|
|
28.07.2012, 18:55
|
Интересующийся
|
|
Регистрация: 11.06.2012
Сообщений: 25
|
|
В лисе, в хроме русский, в опере сразу в encodeURI
|
|
|
|