Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Скрипт "Шифр Цезаря" (https://javascript.ru/forum/project/38935-skript-shifr-cezarya.html)

VilDara 08.06.2013 22:25

Скрипт "Шифр Цезаря"
 
Здравствуйте.

Я тут написал скрипт, который шифрует строку по "Шифру Цезаря".
Наткнулся на проблему: почему не шифруется Э? Ю,Я шифруются, а Э нет!!!

function assa()
{
var rusU_alf = new Array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я');
var rusL_alf = new Array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');
var stroka = "ЭЮЯ";// Строка,которую будем шифровать
stroka = stroka.split('');
var stroka_shifra = new Array();
var soedin_str;
var a;    
var i = 0;
for(i;i<stroka.length;i++){
    if(stroka[i].toLowerCase() == stroka[i]){
        a = rusL_alf.indexOf(stroka[i])+3;
        
        if(stroka[i] == "э"){
            а = 0;
        }
        if(stroka[i] == "ю"){
            a = 1;
        }
        if(stroka[i] == "я"){
            a = 2;
        }
        stroka_shifra.push(rusL_alf[a]);
    }
    if(stroka[i].toUpperCase() == stroka[i]){
        a = rusU_alf.indexOf(stroka[i])+3;
        
        if(stroka[i] == "Э"){
            а = 0;
        }
        if(stroka[i] == "Ю"){
            a = 1;
        }
        if(stroka[i] == "Я"){
            a = 2;
        }
        stroka_shifra.push(rusU_alf[a]);
    }
}
soedin_str = stroka_shifra.join('');
document.write(soedin_str);
}


Отчего это?

vadim5june 08.06.2013 22:56

Вот эту a=0 перепишите похоже там у Вас русская a
if(stroka[i] == "Э"){
 а = 0;

oneguy 08.06.2013 23:10

Цитата:

Сообщение от vadim5june (Сообщение 255403)
Вот эту a=0 перепишите похоже там у Вас русская a
if(stroka[i] == "Э"){
 а = 0;

Действительно, русская а :p
Мой совет: чтобы выловить такие ошибки, включайте строгий режим.

VilDara 08.06.2013 23:15

oneguy,
vadim5june,
Спасибо, все получилось. Скрипт правильно работает.

VilDara 08.06.2013 23:15

oneguy,
А что за "строгий режим"?

vadim5june 08.06.2013 23:19

Цитата:

Сообщение от VilDara (Сообщение 255408)
oneguy,
А что за "строгий режим"?

http://learn.javascript.ru/strict-mode

VilDara 08.06.2013 23:20

vadim5june,
Спасибо.

VilDara 09.06.2013 10:06

Вы случайно не знаете, почему explorer выдает ошибку " Объект не поддерживает это свойство или метод" и указывает сюда?

a = rusU_alf.indexOf(stroka[i])+3;

vadim5june 09.06.2013 10:14

Цитата:

Сообщение от VilDara (Сообщение 255446)
Вы случайно не знаете, почему explorer выдает ошибку " Объект не поддерживает это свойство или метод" и указывает сюда?

a = rusU_alf.indexOf(stroka[i])+3;

http://habrahabr.ru/post/46787/

VilDara 09.06.2013 10:28

vadim5june,
Microsoft как всегда "самый умный"!!!


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