«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript

Игра на «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих
 

Рассмотрим работу двух методов объекта String - это методы charAt и charCodeAt.

Первый позволяет узнать, какой символ содержит строка под определенным индексом.

Второй позволяет узнать, какой код имеет символ строки под определенным индексом.



Метод charAt - Возвращаем символ строки

Метод charAt возвращает символ строки по указанному индексу.

Напомним: каждый элемент (символ) строки имеет порядковый номер - индекс. При этом отсчет ведется с 0.

Рассмотрим пример с произвольным строковым значением переменной (или с произвольным объектом String).

Фрагмент кода

<script type="text/javascript">

var name = "Воронеж";

document.write(name.charAt(2)); /* Выводим на экран символ строки под индексом 2 */

</script>

Результат

Итак, в этом примере мы вывели на экран 3-й символ строки - букву «р», имеющую индекс 2 (отсчет символов ведется с 0).

Метод charCodeAt - Возвращаем КОД символа строки

Метод charCodeAt возвращает код символа строки по указанному индексу.

В JavaScript каждый символ имеет код, который может быть использован в некоторых случаях. Далее мы проработаем этот момент.

А сейчас вернемся к предыдущему примеру и посмотрим, как работает метод charCodeAt.

Фрагмент кода

<script type="text/javascript">

var name = "Воронеж";

document.write(name.charCodeAt (2)); /* Выводим на экран КОД символа строки под индексом 2 */

</script>

Результат

При помощи метода charCodeAt мы вывели на экран код 3-го символа строки (имеющего индекс 2), то есть код буквы «р» - это число «1088».

Юникод U+ и HTML-код символов - Коды букв русского алфавита

Наверное, некоторым из Вас не ясно, о каком коде шла речь, когда мы рассматривали метод charCodeAt?

Любой символ: знаки препинания, заглавные и строчные русские и латинские буквы и т.д. - все они имеют свой код в кодировке Unicode, а также HTML-код.

Для примера вернемся к букве «р» из предыдущего примера.

Она имеет Юникод U+0440 и HTML-код &#1088;

Так вот JavaScript в результате работы метода charCodeAt, выдает нам именно цифровую часть HTML-кода указанного символа.

Теперь, при помощи метода charCodeAt выясним, какие коды имеют русские заглавные и строчные буквы?

Фрагмент кода

<script type="text/javascript">

var letter_UP = "АЯ";
var letter_DOWN = "ая";

var first_letter_UP = letter_UP.charCodeAt(0); /* Заносим в переменную код заглавной буквы А */
var last_letter_UP = letter_UP.charCodeAt(1); /* Заносим в переменную код заглавной буквы Я */
document.write("Русские ЗАГЛАВНЫЕ буквы имеет код, начиная с " + first_letter_UP + " и заканчивая " + last_letter_UP);

document.write("<p>");

var first_letter_DOWN = letter_DOWN.charCodeAt(0); /* Заносим в переменную код буквы а */
var last_letter_DOWN = letter_DOWN.charCodeAt(1); /* Заносим в переменную код буквы я */
document.write("Русские строчные буквы имеет код, начиная с " + first_letter_DOWN + " и заканчивая " + last_letter_DOWN);

document.write("<p>");

document.write("Таким образом, коды ВСЕХ русских букв находятся в диапазоне от <strong> " + first_letter_UP + " </strong> и до <strong> " + last_letter_DOWN + " </strong> ВКЛЮЧИТЕЛЬНО");

</script>

Результат

Методы charAt и charCodeAt - Рассмотрим реальный пример

Рассмотрим реальный пример использования методов charAt и charCodeAt. Необходимо написать код, который будет делать следующее:

1. Нужно попросить у пользователя ввести Имя русскими буквами (любыми - строчными или заглавными).

2. При этом проверить, нет ли в имени помимо русских букв других символов.

3. Затем при написании имени, нужно будет пробовать вводить одну/несколько латинских букв вместо русских.

Для решения этой задачи нужно будет вспомнить тему циклов и просмотреть заметку логические операторы И и ИЛИ в Javascript. Также нужен будет метод prompt объекта Window.

Для составления условия нужен будет диапазон кодов для всех букв русского алфавита (заглавных и строчных). См. предыдущий пример.

Фрагмент кода

<script type="text/javascript">

var name = "АнтоQ"; /* Делаем намеренно в Имени ошибку - это буква Q */

document.write("Вы ввели имя <strong> , " + name + " </strong> <p>");


/* Составляем цикл */

var i = 0; /* Создаём переменную i - это счётчик. i = 0, так как 0 - это индекс первой буквы имени */

while (i < name.length) /* Условие - пока i меньше длины имени */

/* Выполняем действие */

{

if(name.charCodeAt(i) < 1040 || name.charCodeAt(i) > 1103) /* Если КОД текущего символа в имени не попадает в диапазон кодов для букв русского алфавита, то выводим об этом сообщение... */

{
document.write("В имени присутствует недопустимый символ <strong>" + name.charAt(i) + "</strong>. Используйте только русские буквы!<p>"); /* Выводим недопустимый символ */
}


i++; /* Прибавляем к счетчику единицу */

}

</script>

Результат

Итак, в этом примере при помощи цикла while, условия ИЛИ и метода charCodeAt мы поочереди проверили каждую букву в имени на предмет попадания ее КОДа в диапазон кодов для всех букв русского алфавита.

А при помощи метода charAt - вывели на экран недопустимый символ.

Эту же задачу можно реализовать при помощи цикла for. Смотрите пример ниже.

Фрагмент кода

<script type="text/javascript">

var name = "АнтоQ";

document.write("Вы ввели имя <strong> , " + name + " </strong> <p>");

for (var i = 0; i < name.length; i++) /* Используем цикл for */

if(name.charCodeAt(i) < 1040 || name.charCodeAt(i) > 1103)

{
document.write("В имени присутствует недопустимый символ <strong>" + name.charAt(i) + "</strong>. Используйте только русские буквы!<p>");
}

</script>

Результат

И, наконец, добавим метод prompt. Попробуйте в результате самостоятельно ввести любое имя, добавив в него несколько латинских букв.

Фрагмент кода

<script type="text/javascript">

var name = prompt("Введите Ваше имя"); /* Создаем поле для ввода Имени */

document.write("Вы ввели имя <strong> , " + name + " </strong> <p>");

for (var i = 0; i < name.length; i++)

if(name.charCodeAt(i) < 1040 || name.charCodeAt(i) > 1103)

{
document.write("В имени присутствует недопустимый символ <strong>" + name.charAt(i) + "</strong>. Используйте только русские буквы!<p>");
}

</script>

Результат

Читайте также...

Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Тематические публикации

Объект String
Методы charAt и charCodeAt - Возвращаем символ и КОД символа
5023
Свойство length - Число символов в строке
2059
Практическая задача - Свойство length
844
Регистр строки - toUpperCase и toLowerCase
20304
Практическая задача - Методы toUpperCase и toLowerCase
922
Поиск совпадений в строке - Методы indexOf и lastIndexOf
1841
Практическая задача - Методы indexOf и lastIndexOf
878
Метод slice - Копирование из строки
1937
Практическая задача - Метод slice
961
Практическая задача - Методы charAt и charCodeAt
2373
Метод search - Регулярные выражения
1744
Регулярные выражения - Начало и Конец строки
1397
Практическая задача - Регулярные выражения
705
Метод match - Возвращает массив из совпадений - Глобальный поиск g
2327
Поиск сайта в строке
1055
Практическая задача с кредитной картой
553
Метод replace - Замена совпадений
3208
Практическая задача - Метод replace
1602
Метод trim в - Удаление пробелов в начале и конце строки
4132
Метод substring - Извлекает часть строки
675
Метод split в JavaScript - Разделитель строки
942
Популярные заметки
Последние заметки