1 .方括号[]
表示在止标字符串中寻找字符。
2.连字符(-)
例如:[a-z]
3.点字符(.)
是一个通配符,代表所有字符和数字
4.限定符(+*?{n,m})
+表示其前面字符少一个
*表示期前面字符不止一个或零个。如"y*",表示目标字符串包含零或不止一个y.
5.行定位符(^和$)
^表示目标字符串在开头出现,$表示目标字符串在结尾出现
6.排除字符([^])
7.括号字符[()]
表示字符串是一个整体
8.选择字符(|)
9.转义字符(\)与反斜线(\)
匹配函数:preg_match(正则表达式,目标字符串,[数组])
替换字符串函数:preg_replace(正则表达式规范,欲取代字符串子串,目标字符串,[替换的个数])
如:preg_replace('/\s/','-',$aa)
切分字符串:strtok(正则表达式,目标字符串)
如:strtok($string," ")
举例电子邮件地址匹配:
<?php
$email="wangxiaoming2011@hotmail.com";
$email2="The email is liuxiaoshuai_2011@hotmail.com";
$email3=". @hotmail.com";
$asemail="this is wangxiaoming2011@hotmail.com";
$regx='/^[a-zA-Z0-9_.]+@[a-zA-Z0-9_]+\.[a-zA-Z0-9_.]+$/';
$regx2='/[a-zA-Z0-9_.]+@[a-zA-Z0-9_]+\.[a-zA-Z0-9_.]+$/';
if(preg_match($regx, $email,$a)){
echo "This is an email.";
print_r($a);
};
echo "</br>";
if(preg_match($regx2, $email2,$b)){
echo "This is an email.";
print_r($b);
}
echo "</br>";
if(preg_match($regx, $asemail,$c)){
echo "This is an email.";
}else{
echo "This is not an email.";
print_r($c);
}
echo "</br>";
if(preg_match($regx, $email3,$d)){
echo "This is an email.";
}else{
echo "This is not an email.";
print_r($c);
}
echo "</br>";
?>
######################订房页面举例########################
-------------------------------1.订房表单dingfangform.php-----------------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>在线订房表</title>
</head>
<body>
<form action="dingfang.php" method="post">
<table>
<tr bgcolor="#3399FF">
<td>客户姓名</td>
<td><input type="text" name="customername" size="20"/></td>
</tr>
<tr bgcolor="#cccccc">
<td>客户性别</td>
<td>
<select name="gender">
<option value="m">男</option>
<option value="f">女</option>
</select>
</td>
</tr>
<tr bgcolor="#3399FF">
<td>到达时间</td>
<td>
<select name="arrivaltime">
<option value="1">一天后</option>
<option value="2">二天后</option>
<option value="3">三天后</option>
<option value="4">四天后</option>
<option value="5">五天后</option>
</select>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>电话:</td>
<td><input type="text" name="phone" size="20" /></td>
</tr>
<tr bgcolor="#3399FF">
<td>email:</td>
<td><input type="text" name="email" size="30" /></td>
</tr>
<tr bgcolor="#cccccc">
<td>其它需求:</td>
<td><textarea name="info" rows="10" cols="30">如果您有什么其他需求,请填在这里。</textarea></td>
</tr>
<tr bgcolor="#666666">
<td>电话:</td>
<td align="center"><input type="submit" value="确认订房信息"/></td>
</tr>
</table>
</body>
</html>
--------------------------------------2.订房处理表单 dingfang.php---------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>你的订房信息</title>
</head>
<body>
<?php
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
$customername=trim($_POST['customername']);
$gender=$_POST['gender'];
$arrivaltime=$_POST['arrivaltime'];
$phone=trim($_POST['phone']);
$email=trim($_POST['email']);
$info=trim($_POST['info']);
if(!preg_match('/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/',$email))
{
echo "这不是一个有效的email地址,请返回上页且重试";
exit;
}
if(!preg_match('/^[0-9]$/',$phone) and strlen($phone)<=4 or strlen($phone)>=15 )
{
echo "这不是一个有效的电话号码,请返回上页且重试";
exit;
}
if($gender=='m'){
$customer="先生";
}else{
$customer="女士";
}
echo '<p>您的订房信息己经上传,我们正在为您准备房间,确认您的订房信息如下:</p>';
echo $customername."\t".$customer.'将会在'.$arrivaltime.'天后到达。您的电话为'.$phone.'我们将会发达一封电子邮件到您的邮箱:'.$email.'.<br><br>另外,我们己经确认了您其他的要求如下:<br><br>';
echo nl2br($info);
echo "<p>您的订房时间为:".date('Y m d H: i: s')."</p>";
?>
</body>
</html>