Показать сообщение отдельно
  #3 (permalink)  
Старый 04.06.2011, 20:41
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

function code(str, shift) {
		var R = "";
		for (var i = 0; i < str.length; i++) {
			var char = str.charAt(i),
			    tt = code.ABC.indexOf(char) + shift,
			    len = code.ABC.length;
			if (tt - shift === -1) {
				R += char;
				continue;
			}
			if (tt > len - 1)
				tt -= len;
			if (tt < 0)
				tt += len;
			R += code.ABC.charAt(tt);
		}
		return R;
	}
	code.ABC = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
	alert( code("вот как-то так", 1) );


Поясняю:

code.ABC — алфавит. В нём содержатся все символы, которые нужно сдвигать по этому алфавиту.
code(str, shift) — тут shift — это величина сдвига. Может быть отрицательной (сдвиг назад).
Ответить с цитированием