Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 0
Регистрация: 02.04.2014
Сообщений: 120

Как включить валидацию номера телефона

19.07.2019, 15:47. Показов 1088. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять как интегрировать в код валидацию номера телефона, видел примеры с регулярным выражением но не понимаю как его вставить в данный код, кто то может подсказать как интегрировать это выражение в PHP код?
^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$city = $_POST['city'];
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];
 
header('Content-Type: application/json');
if ($name === ''){
  print json_encode(array('message' => 'Введите имя', 'code' => 0));
  exit();
}
if ($phone === ''){
  print json_encode(array('message' => 'Введите телефон', 'code' => 0));
  exit();
 
}if ($city === ''){
  print json_encode(array('message' => 'Введите населенный пункт', 'code' => 0));
  exit();
}
 
if ($email === ''){
  print json_encode(array('message' => 'Введите почту', 'code' => 0));
  exit();
  }
  else {
  if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
  print json_encode(array('message' => 'Введите верный адрес почты', 'code' => 0));
  exit();
  }
}
if ($subject === ''){
  print json_encode(array('message' => 'Введите объект оценки', 'code' => 0));
  exit();
}
if ($message === ''){
  print json_encode(array('message' => 'Напишите подробный адрес и объект оценки', 'code' => 0));
  exit();
}
$content="Имя заказчика: $name \nТелефон заказчика: $phone \nРасположение заказчика: $city \nEmail заказчика: $email \nСообщение: $message";
$recipient = "mailmail@gmail.com";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $content, $mailheader) or die("Ошибка!");
print json_encode(array('message' => 'Ваше обращение отправлено, наши специалисты с вами свяжутся!', 'code' => 1));
exit();
?>
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 <form id ="contact-form" name="contact-form" action="mail.php" method="POST"  onsubmit="return validateForm()">
                    <div class="form-row font-weight-bolder">
                        <div class="col-md-6 md-form">
                            <input type="text" id="name" name="name" class="form-control" required>
                            <label for="name">Имя</label>
                        </div>
                        <div class="col-md-6 md-form">
                            <input type="text" id="phone" name="phone" class="form-control" required>
                            <label for="phone">Телефон</label>
                        </div>
                        <div class="col-md-6 md-form">
                          <input type="text" id="city" name="сity" class="form-control" required>
                          <label for="city">Введите населенный пункт</label>
                        </div>
                         <div class="col-md-6 md-form">
                          <input type="text" id="subject" name="subject" class="form-control" required>
                          <label for="subject">Объект оценки</label>
                        </div>
                        
                        
                    </div>
                    <div class="form-row">
                        <div class="col-md-6 md-form pb-2 font-weight-bolder">
                            <input type="text" id="email" name="email" class="form-control" required>
                            <label for="email">E-mail</label>
                        </div>
                    </div>
                    <div class="md-form amber-textarea active-amber-textarea-2 mt-0">
                        <textarea id="message" name="message" class="md-textarea form-control" rows="3" required></textarea>
                        <label>Напишите адрес и объект оценки</label>
                    </div>
                </form>
                <div class="center-on-small-only">
                  <a class="btn btn-primary" type="submit" onclick="validateForm()">Отправить</a>
                </div> <div class="status" id="status"></div>
            </div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function validateForm() {
 
    document.getElementById('status').innerHTML = "Отправка...";
    formData = {
        'name'     : $('input[name=name]').val(),
        'phone'    : $('input[name=phone]').val(),
        'city'     : $('input[name=city]').val(),
        'subject'  : $('input[name=subject]').val(),
        'email'    : $('input[name=email]').val(),
        'message'  : $('textarea[name=message]').val()
    };
 
 
   $.ajax({
    url : "mail.php",
    type: "POST",
    data : formData,
    success: function(data, textStatus, jqXHR)
    {
 
        $('#status').text(data.message);
        if (data.code) //If mail was sent successfully, reset the form.
        $('#contact-form').closest('form').find("input[type=text], textarea").val("");
    },
    error: function (jqXHR, textStatus, errorThrown)
    {
        $('#status').text(jqXHR);
    }
});
 
 
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2019, 15:47
Ответы с готовыми решениями:

Проверка номера телефона
Есть ли стандартная форма для ввода номера телефона? Как сейчас. Убого и коряво. &lt;legend&gt;Телефон:&lt;/legend&gt; &lt;input...

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

Скрипт для отображения номера телефона
Как написать номер телефона чтобы это было красиво и есть ли такой скрипт?

4
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
20.07.2019, 04:05
assasin21rus, В каком формате телефон должен быть валидный?
0
4 / 4 / 0
Регистрация: 02.04.2014
Сообщений: 120
20.07.2019, 15:16  [ТС]
ну обычный мобильные и городские номера
Миниатюры
Как включить валидацию номера телефона  
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
21.07.2019, 10:08
assasin21rus,

PHP
1
2
3
4
$phone = $_POST['phone'];
if(!preg_match('/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/', $phone)){
    exit(print json_encode(array('message' => 'Некорректный телефон', 'code' => 0)));
}
Добавлено через 3 минуты
Интересно, как вы принимаете данные на клиенте в формате json при этом не указав формата принимаемых данных?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$.ajax({
    url : "mail.php",
    type: "POST",
    dataType: 'json',  // добавьте эту строку к себе в аджакс
    data : formData,
    success: function(data, textStatus, jqXHR){
        $('#status').text(data.message);
        if (data.code) $('#contact-form').closest('form').find("input[type=text], textarea").val("");
    },
    error: function (jqXHR, textStatus, errorThrown){
        $('#status').text(jqXHR);
    }
});
0
4 / 4 / 0
Регистрация: 02.04.2014
Сообщений: 120
21.07.2019, 12:32  [ТС]
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
assasin21rus,

PHP
1
2
3
4
$phone = $_POST['phone'];
if(!preg_match('/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/', $phone)){
    exit(print json_encode(array('message' => 'Некорректный телефон', 'code' => 0)));
}
Добавлено через 3 минуты
Интересно, как вы принимаете данные на клиенте в формате json при этом не указав формата принимаемых данных?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$.ajax({
    url : "mail.php",
    type: "POST",
    dataType: 'json',  // добавьте эту строку к себе в аджакс
    data : formData,
    success: function(data, textStatus, jqXHR){
        $('#status').text(data.message);
        if (data.code) $('#contact-form').closest('form').find("input[type=text], textarea").val("");
    },
    error: function (jqXHR, textStatus, errorThrown){
        $('#status').text(jqXHR);
    }
});
Спасибо форма теперь работает. Не знаю что и сказать по поводу dataType, письма идут с ним и без него. Только у меня еще вопрос появился, я когда делаю форму через select у меня форма пустой приходит, не понимаю почему, не можете подсказать, что не правильно делаю?
HTML5
1
2
3
4
5
6
 <select class="md-form" id="subject" name="subject" required>
                          <option value="" disabled selected>Choose your option</option>
                          <option value="1">Option 1</option>
                          <option value="2">Option 2</option>
                          <option value="3">Option 3</option>
                        </select>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2019, 12:32
Помогаю со студенческими работами здесь

Как включить Java script,чтобы можно было включить программный фрагмент в HTML?
Как включить Java script,чтобы можно было включить программный фрагмент в HTML?

Как добавить в валидацию что бы не ругалось на пробел?
// Проверка поля &quot;Имя&quot; case 'name': var rv_name = /^+$/; // используем регулярное выражение ...

Как правильно написать валидацию для модели в Backbone
Привет. Я посмотрел вот этот коротенький урок. И сделал всё как там: var Person = Backbone.Model.extend({ // Наполним модель...

Функция для формата номера телефона
Что за функция? яя Пользователь вводит номер телефона, +7 заменяется на 8, после 8 прописывается пробел с (, после 4цифры прописывается...

Некорректная работа маски ввода номера телефона
Приветствую, есть ошибка с маской ввода номера телефона. Он ведет себя не не адекватно, при переключении с одного радио на другой. Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru