Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с url ( замена символов, кириллица, латиница) (https://javascript.ru/forum/misc/30180-rabota-s-url-zamena-simvolov-kirillica-latinica.html)

devote 27.07.2012 23:18

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( "Доброго времени суток, столкнулся с определенной задачей решение которой не смог придумать сам" ) );

Deff 27.07.2012 23:21

devote,
Тут по ходу самая сложность не в кирилице - а декодировке get запроса

devote 27.07.2012 23:23

Цитата:

Сообщение от Deff
Тут по ходу самая сложность не в кирилице - а декодировке get запроса

ну дык unescape/decodeURIComponent и т.д. Не?

devote 27.07.2012 23:24

я вопроса совсем не понял если честно.. он хочет менять ссылку в адресной строке чтоль? или что?

Deff 27.07.2012 23:31

<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

Ксать - запятая еще не в кассу

Elve 28.07.2012 13:56

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>

Deff 28.07.2012 14:15

Elve,
10 типовых ссылок приведите, (*поскольку то что Вы привели, - отнюдь не русский, а encodeURI

Elve 28.07.2012 15:15

Я уже приводил ссылки в начале темы, или их недостаточно? Почему я говорю о кирилице - потому, что в адресе в браузере я вижу русский, нокогда копирую оттуда получаю encodeURI

Deff 28.07.2012 15:47

Цитата:

Сообщение от Elve
Я уже приводил ссылки в начале темы, или их недостаточно? Почему я говорю о кирилице - потому, что в адресе в браузере я вижу русский, нокогда копирую оттуда получаю encodeURI

В каком браузере ? - войдите с Opera

Elve 28.07.2012 18:55

В лисе, в хроме русский, в опере сразу в encodeURI


Часовой пояс GMT +3, время: 14:55.