Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2013, 22:25
Новичок на форуме
Отправить личное сообщение для VilDara Посмотреть профиль Найти все сообщения от VilDara
 
Регистрация: 08.06.2013
Сообщений: 6

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

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

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);
}


Отчего это?

Последний раз редактировалось VilDara, 08.06.2013 в 22:30.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2013, 22:56
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Вот эту a=0 перепишите похоже там у Вас русская a
if(stroka[i] == "Э"){
 а = 0;
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2013, 23:10
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от vadim5june Посмотреть сообщение
Вот эту a=0 перепишите похоже там у Вас русская a
if(stroka[i] == "Э"){
 а = 0;
Действительно, русская а
Мой совет: чтобы выловить такие ошибки, включайте строгий режим.
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2013, 23:15
Новичок на форуме
Отправить личное сообщение для VilDara Посмотреть профиль Найти все сообщения от VilDara
 
Регистрация: 08.06.2013
Сообщений: 6

oneguy,
vadim5june,
Спасибо, все получилось. Скрипт правильно работает.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2013, 23:15
Новичок на форуме
Отправить личное сообщение для VilDara Посмотреть профиль Найти все сообщения от VilDara
 
Регистрация: 08.06.2013
Сообщений: 6

oneguy,
А что за "строгий режим"?
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2013, 23:19
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от VilDara Посмотреть сообщение
oneguy,
А что за "строгий режим"?
http://learn.javascript.ru/strict-mode
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2013, 23:20
Новичок на форуме
Отправить личное сообщение для VilDara Посмотреть профиль Найти все сообщения от VilDara
 
Регистрация: 08.06.2013
Сообщений: 6

vadim5june,
Спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2013, 10:06
Новичок на форуме
Отправить личное сообщение для VilDara Посмотреть профиль Найти все сообщения от VilDara
 
Регистрация: 08.06.2013
Сообщений: 6

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

a = rusU_alf.indexOf(stroka[i])+3;
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2013, 10:14
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

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

a = rusU_alf.indexOf(stroka[i])+3;
http://habrahabr.ru/post/46787/
Ответить с цитированием
  #10 (permalink)  
Старый 09.06.2013, 10:28
Новичок на форуме
Отправить личное сообщение для VilDara Посмотреть профиль Найти все сообщения от VilDara
 
Регистрация: 08.06.2013
Сообщений: 6

vadim5june,
Microsoft как всегда "самый умный"!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Изменить скрипт Изучаю_JS Общие вопросы Javascript 0 12.02.2012 22:05
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07