«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript
site.komp36.ru Создание сайтов. Твой сайт фотографа Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.
site.komp36.ru Продающий лендинг «Установка и продажа окон» Установка и продажа окон, установка дверей, перегородок. Одностраничный продающий сайт. Заявки прямо с сайта
site.komp36.ru Универсальный лендинг. Любая тема сайта - 4900 руб. Лендинг адаптируется под любую тему: ремонт, отделка, продажа окон, дверей, лестниц, мебели и многое другое
site.komp36.ru Создание сайтов. Сайт сервисного центра. Сайт компании. Новости и отзывы. Несколько прайс-листов – под каждый отдельная страница. Возможность размещения статей


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



На этой странице средствами Javascript будет решена довольно интересная задача по проверке номера телефона, состоящего из цифр, разделенных дефисом.

Будут рассмотрены несколько вариантов решения.

Условие задачи:

Написать функцию, которая получает номер телефона в виде: 123-4567.

Функция принимает или отвергает полученную комбинацию, которая должна состоять из семи цифр от 0 до 9, разделенных после третьей цифры дефисом.

В комбинации могут быть любые цифры от 0 до 9. Они могут повторяться, и их порядок не важен.



1-ый вариант решения - Циклы и условия

Что нужно знать?

1. Естественно тему функций (в частности оператор return - возврат значений функцией)

2. Условия if-else

3. Что такое «не число» - NaN в JavaScript. Функция isNaN

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

5. Циклы в JavaScript - Цикл for

6. Метод prompt объекта Window

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

<script type="text/javascript">

function input(phone){

/* Проверка на число символов */
if (phone.length !== 8){
return false;
}

else{
/* Проверка на дефис */
if (phone.charAt(3) != "-"){
return false;
}
/* Проверки на НЕ ЧИСЛО */
else{
/* Цикл для 1-ой проверки */
for(i = 0; i < 3; i++){
if (isNaN(phone.charAt(i))){
return false;
}
}
/* Цикл для 1-ой проверки */
for(i = 4; i < 8; i++){
if (isNaN(phone.charAt(i))){
return false;
}
}
}
}
return phone;
}

var phone_N = prompt("Введите номер из 7-ми цифр формата 111-1111");

var result = input(phone_N);

document.write(result);

</script>

Результат

1-ый вариант решения - Результат

2-ой вариант решения - Извлекаем часть строки

Что нужно знать?

Помимо знаний, используемых в 1-м варианте решения задачи, здесь мы будем иметь дело:

1) Метод substring в JavaScript - Как извлечь часть строки?

2) Логический оператор ИЛИ

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

<script type="text/javascript">

function input(phone){

var three = phone.substring(0,3); /* Извлекаем 1-е три символа строки */
var four = phone.substring(4); /* Извлекаем всю строку, начиная с 4-го символа */

/*
1. Проверка на число символов
2. Проверка на дефис
3. Две проверки на НЕ число 2-х групп символов: isNaN(three) и isNaN(four)
*/

if(phone.length != 8 || phone.charAt(3) != "-" ||isNaN(three) || isNaN(four)){
return false;
}
else{
return phone;
}
}

var phone_N = prompt("Введите номер из 7-ми цифр формата 111-1111");

var result = input(phone_N);

document.write(result);

</script>

Результат

2-ой вариант решения - Результат

3-ий вариант решения

Что нужно знать?

Третий вариант решения задачи по проверке номера телефона вида 123-4567 не требует иных знаний, кроме перечисленных в 1-х двух вариантах решения.

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

<script type="text/javascript">

function input(phone){

/* 1. Проверка на число символов */
if (phone.length != 8){
return false;
}

for(i = 0; i < phone.length; i++){

/* 2. Проверка на дефис для 4-го символа */
if (i == 3){
if(phone.charAt(i) != "-"){
return false;
}

}

/* 3. Проверка на НЕ число всех остальных символов */
else if(isNaN(phone.charAt(i))){
return false;
}

}
return phone;
}

var phone_N = prompt("Введите номер из 7-ми цифр формата 111-1111");

var result = input(phone_N);

document.write(result);

</script>

Результат

3-ий вариант решения - Результат

На следующей странице задача по проверке номера телефона будет усложнена. Изучайте Javascript.

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

site.komp36.ruТвой сайт фотографа. Создание сайтов Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.
site.komp36.ru Акция Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов
site.komp36.ru Акция Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта

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

Добавил(а): Роман
Дата: 2023-03-28

Здравсвуйте, подскажите пожалуйста в 3 варианте почему проверка else if(isNaN(phone.charAt(i))){ return false; } на 4 итерации не не производит выход из функции. Проверяется 4 элемент на не число, условие по идеи ведь выполняется "-" не является числом и мы должны выполнить условие if, а итерации продалжаються. Почему?

Добавил: Admin
Дата: 2023-04-24

Проверка о которой вы пишите: else if(isNaN(phone.charAt(i))){ return false; } - это проверка на НЕ число всех остальных символов. 4-ый элемент "-" проверяется на не число здесь: if (i == 3){ if(phone.charAt(i) != "-"){ return false; } }

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

Ваше Имя:

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

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

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


Задачи по JavaScript
Тематические публикации
site.komp36.ru Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов
site.komp36.ru Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта
Популярные заметки
Последние заметки