在PHP中使用正则表达式进行验证
在PHP中使用正则表达式进行验证时遇到一些问题。(这是一个课堂作业,所以在如何做这件事上没有太多的灵活性,只需要让它发挥作用) ^^这里正则表达式不起作用(任何东西都通过验证) ^^这里正则表达式确实起作用 这让我觉得我没有合适的正则表达式,但我不知道合适的正则表达式是什么。。。我不允许任何数字或符号,只接受字母 下面是整个switch语句:在PHP中使用正则表达式进行验证,php,regex,Php,Regex,在PHP中使用正则表达式进行验证时遇到一些问题。(这是一个课堂作业,所以在如何做这件事上没有太多的灵活性,只需要让它发挥作用) ^^这里正则表达式不起作用(任何东西都通过验证) ^^这里正则表达式确实起作用 这让我觉得我没有合适的正则表达式,但我不知道合适的正则表达式是什么。。。我不允许任何数字或符号,只接受字母 下面是整个switch语句: switch ($name) { case 'firstname' : if (!preg_match('/^[a-zA-Z]+$
switch ($name) {
case 'firstname' :
if (!preg_match('/^[a-zA-Z]+$/', $firstname)) {
$fnameError = "Please enter your first name. ";
$somethingsWrong = true;
} else if (empty($firstname)) {
$fnameError = "Please enter your first name. ";
$somethingsWrong = true;
}
case 'lastname' :
if (!preg_match('/^[a-zA-Z]+$/', $lastname)) {
$lnameError = "Please enter your last name. ";
$somethingsWrong = true;
} else if (empty($lastname)) {
$lnameError = "Please enter your last name. ";
$somethingsWrong = true;
}
case 'street' :
if (empty($street)) {
$streetError = "Please enter your street address. ";
$somethingsWrong = true;
}
case 'city' :
if (!preg_match('/^[a-zA-Z]+$/', $city)) {
$cityError = "Please enter your city. ";
$somethingsWrong = true;
} else if (empty($city)) {
$cityError = "Please enter your city. ";
$somethingsWrong = true;
}
case 'state' :
if ($state === "") {
$stateError = "Please select a state. ";
$somethingsWrong = true;
}
case 'zip' :
if (!preg_match('/^\d{5}$/', $zip)) {
$zipError = "Standard 5-digit zip codes only. ";
$somethingsWrong = true;
} else if (empty($zip)) {
$zipError = "Standard 5-digit zip codes only. ";
$somethingsWrong = true;
}
case 'email' :
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailError = "Email invalid.";
$somethingsWrong = true;
}
case 'creditcard' :
if ($creditCard === "") {
$creditCardError = "Please choose a credit card. ";
$somethingsWrong = true;
}
case 'cc' :
if (!preg_match('/\d{16}|\d{18}/', $ccNumber)) {
$ccError = "Please enter a valid credit card number. ";
$somethingsWrong = true;
} else if (empty($ccNumber)) {
$ccError = "Please enter a valid credit card number. ";
$somethingsWrong = true;
}
case 'cvv' :
if (!preg_match('/\d{3}|\d{4}/', $cvv)) {
$cvvError = "Please enter a valid CVV number. ";
$somethingsWrong = true;
} else if (empty($cvv)) {
$cvvError = "Please enter a valid CVV number. ";
$somethingsWrong = true;
}
case 'ticketnumber' :
if (!preg_match('/^\d$/', $ticketNumber)) {
$ticketError = "Please select your number of tickets.";
$somethingsWrong = true;
}
}
看一看,您甚至可能不需要正则表达式来测试名称是否有效。您在这里用值填充$firstname?在if语句之前,您是否检查过它是否包含您期望的值?您的正则表达式可以工作,下面是证据:
var\u dump($firstname)
并查看它在整个switch($name)
语句中显示的内容
case 'zip' :
if (!preg_match('/^\d{5}$/', $zip)) {
$zipError = "Standard 5-digit zip codes only. ";
$somethingsWrong = true;
} else if (empty($zip)) {
$zipError = "Standard 5-digit zip codes only. ";
$somethingsWrong = true;
}
switch ($name) {
case 'firstname' :
if (!preg_match('/^[a-zA-Z]+$/', $firstname)) {
$fnameError = "Please enter your first name. ";
$somethingsWrong = true;
} else if (empty($firstname)) {
$fnameError = "Please enter your first name. ";
$somethingsWrong = true;
}
case 'lastname' :
if (!preg_match('/^[a-zA-Z]+$/', $lastname)) {
$lnameError = "Please enter your last name. ";
$somethingsWrong = true;
} else if (empty($lastname)) {
$lnameError = "Please enter your last name. ";
$somethingsWrong = true;
}
case 'street' :
if (empty($street)) {
$streetError = "Please enter your street address. ";
$somethingsWrong = true;
}
case 'city' :
if (!preg_match('/^[a-zA-Z]+$/', $city)) {
$cityError = "Please enter your city. ";
$somethingsWrong = true;
} else if (empty($city)) {
$cityError = "Please enter your city. ";
$somethingsWrong = true;
}
case 'state' :
if ($state === "") {
$stateError = "Please select a state. ";
$somethingsWrong = true;
}
case 'zip' :
if (!preg_match('/^\d{5}$/', $zip)) {
$zipError = "Standard 5-digit zip codes only. ";
$somethingsWrong = true;
} else if (empty($zip)) {
$zipError = "Standard 5-digit zip codes only. ";
$somethingsWrong = true;
}
case 'email' :
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailError = "Email invalid.";
$somethingsWrong = true;
}
case 'creditcard' :
if ($creditCard === "") {
$creditCardError = "Please choose a credit card. ";
$somethingsWrong = true;
}
case 'cc' :
if (!preg_match('/\d{16}|\d{18}/', $ccNumber)) {
$ccError = "Please enter a valid credit card number. ";
$somethingsWrong = true;
} else if (empty($ccNumber)) {
$ccError = "Please enter a valid credit card number. ";
$somethingsWrong = true;
}
case 'cvv' :
if (!preg_match('/\d{3}|\d{4}/', $cvv)) {
$cvvError = "Please enter a valid CVV number. ";
$somethingsWrong = true;
} else if (empty($cvv)) {
$cvvError = "Please enter a valid CVV number. ";
$somethingsWrong = true;
}
case 'ticketnumber' :
if (!preg_match('/^\d$/', $ticketNumber)) {
$ticketError = "Please select your number of tickets.";
$somethingsWrong = true;
}
}