2016-11-04 3 views
0

имеют проблемы с проверкой регулярных выражений с использованием php.Проблемы с регулярным выражением php

У меня есть html-форму, размещенную ниже, которая запрашивает номер телефона, номерной знак, адрес улицы, номер дня рождения и номер социального страхования. (я озабочен только получить номер телефона и улицу, чтобы правильно работать сейчас)

мне нужно использовать функцию preg_match придерживаться следующих критериев для телефонных номеров: номер

телефона - 7 цифр или 10 цифр

◦7 цифры: первые три цифры представляют собой одну группу, и могут быть отделены от последних четырех цифр с тире, одним или несколькими пробелами, или вообще ничего

◦10 цифр : fi первые три цифры, две три цифры и последние четыре цифры представляют собой три различные группы, и каждая группа может быть отделена от соседней группы ничем, тире или одним или несколькими пробелами или скобками

◦eg. все они являются действительными ▪ (604) 123-4567, но не 604) 123-4567 и (604123-4567 ▪6041234567 ▪1234567 ▪123-4567 ▪123 4567 ▪604-123-4567 ▪ 604 123 4567 ▪604 1234567 ▪604123 456

мне нужно использовать функцию preg_match придерживаться следующих критериев для телефонных номеров:

Улица - от трех до пяти чисел адреса с последующей строкой , должно заканчиваться словом «Улица» ◦eg. Они действительны ▪123 Main Street ▪8888 Oak Street ▪55555 Dunsmuir Улица

код до сих пор для lab11.html и lab11.php lab11.html

<!DOCTYPE html> 
<html> 
<head> 
<title>Lab 11</title> 
<meta charset="utf-8"> 
</head> 
<body> 
<form action="lab11.php" method="POST"> 
<input type="text" name="phoneNumber"placeholder="Phone Number" style="font-size: 15pt"> 
<br> 
<input type="text"name="licensePlate"placeholder="License Plate" style="font-size: 15pt"> 
<br> 
<input type="text" name="streetAddress" placeholder="Street Address" style="font-size: 15pt"> 
<br> 
<input type="text" name="birthday" placeholder="Birthday" style="font-size: 15pt"> 
<br> 
<input type="text" name="socialInsuranceNumber" placeholder="Social Insurance Number" style="font-size: 15pt"> 
<br> 
      <input type="submit" name="submit" value="Submit"> 
</form> 
</body> 
</html> 

lab11.php

<?php 
    // Get phone number, license plate, street address, birthday and 
    // social insurance number entered from lab11.html form 
    $phoneNumber = $_POST['phoneNumber']; 
     echo "Your phone number is " . $phoneNumber; 
     echo "<br>"; 
    $licensePlate = $_POST['licensePlate']; 
     echo "Your License Plate Number is " . $licensePlate; 
     echo "<br>"; 
    $streetAddress = $_POST['streetAddress']; 
     echo "Your Street Address is " . $streetAddress; 
     echo "<br>"; 
    $birthday = $_POST['birthday']; 
     echo "Your Birthday is " . $birthday; 
     echo "<br>"; 
    $socialInsuranceNumber = $_POST['socialInsuranceNumber']; 
     echo "Your Social Insurance Number is " . $socialInsuranceNumber; 

    echo "<br>"; 

    // Validate regular expression for phone number entered 
    if (preg_match("/^\(.[0-9]{3}[0-9]$/", $phoneNumber)) { 
     echo "Your phone is correct."; 
    } 
    else { 
     echo "Your password is wrong."; 
    } 
    // Validate regular expression for license plate entered 
    if (preg_match("/{3,5}.String$/", $streetAddress)) { 
     echo "Your plate is correct."; 
    } 
    else { 
     echo "Your plate is wrong."; 
    } 
?> 

ответ

0

Regex для номера телефона:

^(\([\d]{3}\)|[\d]{3})?(-|\s*)?([\d]{3})?(-|\s*)?[\d]{3}(-|\s*)?[\d]{4}$ 

и адреса:

^([\d]{3,5})\s+[a-zA-Z'"\s]+\s*Street$ - you can add `i` modifier for case insensitive 

[a-zA-Z'"\s] - только дали буквы + «» и белое пространство - для названия улицы. В зависимости от ваших потребностей вы можете изменить его.

+0

Это примет '++++ _______ Street' в качестве действительного адреса! и '+++++++++++++' как действительный номер телефона – Toto

+0

Спасибо за комментарий! Я исправил ошибку. – krasipenkov

Смежные вопросы