我正在尝试通过创建简单的示例来学习 PHP 中的正则表达式。这里我有一个非常简单的示例:
if($_POST){
$errors = array();
if(isset($_POST['name'])){
if(!preg_match('/^([a-zA-Z]{3,8})$/',$_POST['name'])){
$errors['name1'] = "Must enter Alphabet";
$errors['name2'] = ""Cant be less than 3";
}
}
if(count($errors)==0){
header("Location: pro.php");
exit();
}
}
?>
<form method="POST" target="">
First name: <input type="text" name="name"><br>
<input type="submit" name="submit">
</form>
对我来说,验证工作正常,但我在基于错误显示错误消息时遇到问题。例如,我只想$errors['name1']
在未输入字符串且输入$errors['name2']
数字时显示错误。我试图将表达式分成两个标准:
if(isset($_POST['name']))
{
if(!preg_match('/^([a-zA-Z])$/',$_POST['name']))
{
$errors['name1'] = "Must enter Alphabet";
}
if(preg_match('/^{3,8}$/',$_POST['name']))
{
$errors['name2'] = "Cant be less than 3";
}
}
但我收到以下错误
更新
if(isset($_POST['name']))
{
if(!preg_match('/^([a-zA-Z])$/',$_POST['name']))
{
$errors['name1'] = "Must enter Alphabet";
}
if ( ! preg_match( '/.{3,8}/', $_POST['name'] ))
{
$errors['name2'] = "Cant be less than 3";
}
}