не работает простенький JS код

Тема в разделе "Другие языки", создана пользователем zek24, 29 июн 2011.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    776
    Симпатии:
    230
    Привет,
    решил изучить javascript, смотрю видеокурс, читаю параллельно книгу. Теперь нужно решить "домашнее задание"-
    У вас есть массив: var students = ["Илья","Greg", "Алина"];
    Вам надо пройтись по каждому элементу этого массива и выяснить в каком элементе массива есть буквы,
    которые не попадают в диапазон русских букв.

    Подсказка. При решении нужно использовать цикл внутри цикла.
    В первом цикле вы перебираете элементы массива, а во внутреннем цикле уже каждый символ
    текущего элемента массива. Для внутреннего цикла можете назвать счетчик var j = 0;

    написал следующий код-
    Код:
    var students = ["Илья","Greg", "Алина"];
    
      for (var i=0; i < students.length; i++){
          for(var j=0, j < students[i].length; j++){
              if (students[i].charCodeAt(j)< 1040 || students[i].charCodeAt(j)>1103){
                  document.write("неправильный символ ");
              }   
      }
     }
    где 1040 и 1103 -диапазон кодов русских букв.

    Но результат - пустое окно. Пересматривал его сотню раз. Посмотрел решение, оно оказалось идентичным, за исключением отсутствия фигурных скобок после if().

    Подскажите, почему не работает?
    Спасибо!
     
  2. капрал

    капрал

    Регистр.:
    2 окт 2008
    Сообщения:
    337
    Симпатии:
    45
    твоя ошибка выделена красным

    Код:
    var students = ["Илья","Greg", "Алина"];
      for (var i=0; i < students.length; i++){
          for(var j=0[B][COLOR="Red"][SIZE="3"];[/SIZE][/COLOR][/B] j < students[i].length; j++){
              if (students[i].charCodeAt(j)< 1040 || students[i].charCodeAt(j)>1103){
                  document.write("неправильный символ ");
              }   
      }
     }
     
    zek24 нравится это.
  3. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    да ну.
    Код:
    var students = ["Илюша", "Onatole", "Цаплеед"]
    for (var key in students) {
        if (students[key].match(/[^\xe0-\xff]/i)) {
            document.write("Неправильный символ");
        }
    }
    
    не тестил, но должно работать))
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    А если без подсказки, то
    Код:
    var students = ["Илья","Greg", "Алина"];
    for(i in students){
        if(!students[i].match(/[а-яё]/i)){
            alert('В '+students[i]+' есть буквы, которые не попадают в диапазон русских букв');
        }
    }
    
     
Статус темы:
Закрыта.