
\d数字 \w数字字母 \s空白符 ^以什么开头 $什么结尾 [] ()组 ?有或没有 {2}次数 [^1-2]除1,2以外的字符
preg_match($regex,$string) preg_replace($pattern,$replacement,$string)
$new_phone = preg_replace('/[\(\)\-\s]/', '', $phone) 去掉(- )换成空 便于数据库统一储存格式
<!-- 电话号码/邮箱正则验证 -->
<!DOCTYPE html>
<html>
<head>
<title>Risky Jobs Registration</title>
</head>
<body>
<h3>Risky Jobs - Registration </h3>
<?php
require_once('define.php');
if (isset($_POST['submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$job = $_POST['job'];
$resume = $_POST['resume'];
$output_form = 'no';
if (empty($firstname)) {
echo '<p>You forgot to enter your first name.</p>';
$output_form = 'yse';
}
if (empty($lastname)) {
echo '<p>You forgot to enter your last name.</p>';
$output_form = 'yse';
}
if (!preg_match('/^[a-zA-Z0-9][a-zA-Z0-9\._\-&!?=#]*@/', $email)) {
echo '<p>Your email address is invalid.</p>';
$output_form = 'yse';
}
else{
//能匹配大部分email地址
$domain = preg_replace('/^[a-zA-Z0-9][a-zA-Z0-9\._\-&!?=#]*@/', '', $email);
// if (!checkdnsrr($domain)) {//检查域名是否注册
// echo 'You email address is invalid.<br>';
// $output_form = 'yes';
// }
$output_form = 'yes';
}
//可能有() 2-9开头 2位数字 -或者空格 -4位数字
if (!preg_match('/^\(?[2-9]\d{2}\)?[-\s]\d{3}-\d{4}$/', $phone)) {
echo '<p>You phone number is invalid.</p>';
$output_form = 'yse';
}
if (empty($job)) {
echo '<p>You forgot to enter your job.</p>';
$output_form = 'yse';
}
if (empty($resume)) {
echo '<p>You forgot to enter your resume.</p>';
$output_form = 'yse';
}
else{
$output_form = 'yes';
}
if ($output_form == 'yes'){ //如果当条件为yes时,显示表单,
echo '显示表单:<br>';
}
}
?>
<!-- 显示表单 -->
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<table>
<tr><td><label for="firstname">First name:</label></td><td><input type="text" name="firstname" id="firstname" value="<?php if(!empty($firstname)) echo $firstname;?>"></td></tr>
<tr><td><label for="lastname">Last name:</label></td><td><input type="text" name="lastname" id="lastname" value="<?php if(!empty($lastname)) echo $lastname;?>"></td></tr>
<tr><td><label for="email">Email:</label></td><td><input type="email" name="email" id="email" value="<?php if(!empty($email)) echo $email;?>"></td></tr>
<tr><td><label for="phone">Phone:</label></td><td><input type="text" name="phone" id="phone" value="<?php if(!empty($phone)) echo $phone;?>"></td></tr>
<tr><td><label for="job">Desired Job:</label></td><td><input type="text" name="job" id="job" value="<?php if(!empty($job)) echo $job;?>"></td></tr>
<tr><td><label for="resume">Past your resume here:</label></td><td><input type="text" name="resume" id="resume" value="<?php if(!empty($resume)) echo $resume;?>"></td></tr>
<tr><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>
</body>
</html>
dbc.php
<?php
//connecting define
define('DB_HOST', '127.0.0.1');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_NAME', 'test');
//app define
define('GW_UPLOADPATH', 'images/');
define('GW_MAXFILESIZE',32768); //32k
//win 下检测dnsrr
// $domain = '@qq.com';
function win_checkdnsrr($domain, $recType=''){
if (!empty($domain)) {
if (!$recType=='') $recType="MX";
exec("nslooup -type=$recType $domain",$output);//exec 调用服务器上的一个外部程序来检测域
foreach ($output as $line) {
if (preg_match("/^$domain/", $line)) {
echo '<pre>';
print_r($line);
return ture;
}
}
return false;
}
return false;
}
// win_checkdnsrr($domain);
//linux下 checkdnsrr('php.com'); 直接检测域名
?>
本文展示了如何使用PHP的正则表达式进行表单验证,包括检查电子邮件地址和电话号码的格式。通过preg_match和preg_replace函数,确保用户输入的数据符合预设的格式标准,例如去除电话号码中的特殊字符。
305

被折叠的 条评论
为什么被折叠?



