写一个php的邮箱正则
时间: 2023-04-05 18:04:10 浏览: 68
可以的,以下是一个简单的 PHP 邮箱正则表达式:
$email = "example@email.com";
if (preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $email)) {
echo "这是一个有效的邮箱地址";
} else {
echo "这不是一个有效的邮箱地址";
}
这个正则表达式可以检查一个字符串是否符合标准的邮箱格式。如果符合,就会输出“这是一个有效的邮箱地址”,否则输出“这不是一个有效的邮箱地址”。
相关问题
php 写一个有正则匹配的注册页面美化
以下是一个简单的 PHP 注册页面美化的示例代码,其中包含正则表达式的验证:
```php
<!DOCTYPE html>
<html>
<head>
<title>注册页面</title>
<style>
/* 注册表单样式 */
form {
width: 400px;
margin: 50px auto;
padding: 20px;
background: #f4f7f8;
border-radius: 5px;
}
label {
display: block;
margin-bottom: 10px;
font-weight: bold;
}
input[type=text], input[type=email], input[type=password] {
width: 100%;
padding: 10px;
margin-bottom: 20px;
border: none;
border-radius: 5px;
}
input[type=submit] {
background: #4caf50;
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
}
input[type=submit]:hover {
background: #3e8e41;
}
/* 错误信息样式 */
.error {
color: red;
margin-bottom: 10px;
}
</style>
</head>
<body>
<?php
// 定义变量
$username = $email = $password = '';
$usernameErr = $emailErr = $passwordErr = '';
// 如果提交了表单
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 验证用户名
if (empty($_POST['username'])) {
$usernameErr = '用户名不能为空';
} else {
$username = test_input($_POST['username']);
// 使用正则表达式验证用户名
if (!preg_match('/^[a-zA-Z0-9_]{5,15}$/', $username)) {
$usernameErr = '用户名必须由 5 到 15 个数字、字母或下划线组成';
}
}
// 验证邮箱
if (empty($_POST['email'])) {
$emailErr = '邮箱不能为空';
} else {
$email = test_input($_POST['email']);
// 使用 PHP 自带的函数验证邮箱格式
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = '邮箱格式不正确';
}
}
// 验证密码
if (empty($_POST['password'])) {
$passwordErr = '密码不能为空';
} else {
$password = test_input($_POST['password']);
// 使用正则表达式验证密码
if (!preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/', $password)) {
$passwordErr = '密码必须至少包含一个大写字母、一个小写字母和一个数字,长度至少为 8 个字符';
}
}
}
// 定义一个过滤输入的函数
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<label>用户名:</label>
<input type="text" name="username" value="<?php echo $username; ?>">
<span class="error"><?php echo $usernameErr; ?></span>
<label>邮箱:</label>
<input type="email" name="email" value="<?php echo $email; ?>">
<span class="error"><?php echo $emailErr; ?></span>
<label>密码:</label>
<input type="password" name="password">
<span class="error"><?php echo $passwordErr; ?></span>
<input type="submit" value="注册">
</form>
</body>
</html>
```
在上面的代码中,使用了 `preg_match()` 函数来验证用户名和密码的格式,使用了 `filter_var()` 函数来验证邮箱的格式。同时,为了防止 XSS 攻击,使用了 `htmlspecialchars()` 函数来过滤输入的数据。
php正则表达式邮箱格式
可以使用以下正则表达式匹配邮箱格式:
```
/^([a-zA-Z0-9_\.-]+)@([a-zA-Z0-9_-]+)\.([a-zA-Z]{2,5})$/
```
其中,`^` 表示匹配字符串的开头,`$` 表示匹配字符串的结尾。`[a-zA-Z0-9_\.-]+` 匹配用户名部分,其中包括字母、数字、下划线、点和短横线,且至少出现一次。`[a-zA-Z0-9_-]+` 匹配域名部分,其中包括字母、数字、下划线和短横线,且至少出现一次。`\.` 匹配域名和后缀之间的点号。`[a-zA-Z]{2,5}` 匹配后缀部分,其中包括两到五个字母。