Ajax和PHP正则表达式验证表单及验证码


Posted in PHP onSeptember 24, 2016

模式匹配符:

\:转义字符 例如:\b转义了b

^:正则表达式开始符号

$:正则表达式结束符号

*:匹配前面的字符出现0次或者n次

+:匹配前面的字符出现1次或者n次

?:匹配前面的字符出现0次或者1次

.:匹配除了换行符以外的所有单个字符

|:或者的意思,例如x|y 匹配x或者y

{n}:匹配前面的n个字符

{n,m}:匹配至少n个最多m个前面字符

[xyz]:匹配中括号里的任意一个字符

[^xyz]:匹配除了中括号里的任意一个字符等价于[0-9]

\w:匹配任意一个数字或字母或下划线 等价于[A-Za-z0-9_]

\d:匹配任意一个0--9之间的数字

模式修正符:

i:忽略大小写

常用正则表达式举例:

//用户名由6-18位的字母数字下划线组成,不能由数字开头

var r_name=/^[a-z]\w{5,17}$/i

//密码长度不能少于六位

var r_pwd=/^\w{6,}$/

//所有的通用邮箱地址

var r_eamil=/^\w+@\w+(\.)\w+$/

//匹配一个QQ邮箱地址

//861745122@qq.com
var r_qq_email=/^\d{5,}@qq(\.)com$/

//匹配一个163的邮箱地址

var r_163_email=/^\w+@163(\.)com$/

//匹配一个后缀名可能是.com|.net|.cn|.edu

var email=/^\w+@\w+(\.)com|net|cn|edu$/

//要求输入有效的年龄段

var r_age=/^\d{1,2}$/

//if(age>=18&&age《=100)

//验证手机号:11位 13 15 18开头

var r_tel=/^1[3,5,8]\d{9}$/

//验证身份证号 18位或者17位加一个X

var r_s=/^\d{18}|\d{17}x$/i

//验证中文 var reg=/^[\u4e00-\u9fa5]{2,17}$/

//php

$reg = "/^[\x{4e00}-\x{9fa5}]$/u"

<span style="font-size:24px;">下面是一个例子:</span> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 
<title></title> 
<script type="text/javascript" src="public.js"></script> 
</head> 
<body onload="yanzheng(this)"> 
<form method="post" action="info_2.php" onsubmit="return check_all()"> 
<table> 
<tr> 
<td colspan="2">账户基本信息</td> 
</tr> 
<tr> 
<td>登录账号:</td> 
<td><input type="text" name="zhanghao" onblur="check_zhanghao(this)"><span name="sp1"></span></td> 
</tr> 
<tr> 
<td>昵称:</td> 
<td><input type="text" name="nicheng" onblur="check_nicheng(this)"><span name="sp2"></span></td> 
</tr> 
<tr> 
<td>性别:</td> 
<td><input type="radio" name="sex" value="男"onclick="check_sex()">男 
<input type="radio" name="sex" value="女"onclick="check_sex()">女 
<span id="sp3"></span></td> 
</tr> 
<tr> 
<td colspan="2">账户安全设置</td> 
</tr> 
<tr> 
<td>登录密码:</td> 
<td><input type="password" name="pwd" onblur="check_pwd(this)"><span name="sp4"></span></td> 
</tr> 
<tr> 
<td>确认登录密码:</td> 
<td><input type="password" name="repwd" onblur="check_repwd(this)"><span name="sp5"></span></td> 
</tr> 
<tr> 
<td>真实姓名:</td> 
<td><input type="text" name="username" onblur="check_username(this)"><span name="sp6"></span></td> 
</tr> 
<tr> 
<td>身份证号:</td> 
<td><input type="text" name="idcard" onblur="check_idcard(this)"><span name="sp7"></span></td> 
</tr> 
<tr> 
<td>邮箱地址:</td> 
<td><input type="text" name="email" onblur="check_email(this)"><span name="sp8"></span></td> 
</tr> 
<tr> 
<td>验证码</td> 
<td><input type="text" id="number" onblur="check_number()"> 
<input type="button" onclick="yanzheng()" value="获取验证码" > 
<span id="sp10"></span> 
<span id="sp9"></span> 
</td> 
</tr> 
<tr> 
<td></td> 
<td><input type="submit" value="免费注册"></td> 
</tr> 
</table> 
</form> 
<script type="text/javascript"> 
//验证登录账号 
function check_zhanghao(obj){ 
var sp1=$('sp1'); 
if(obj.value==''){ 
sp1.innerHTML='登录账号不能为空'; 
sp1.style.color='red'; 
return false; 
}else{ 
var reg=/^\w{5,10}$/i; 
if(reg.test(obj.value)){ 
sp1.innerHTML='正确'; 
sp1.style.color='green'; 
return true; 
}else{ 
sp1.innerHTML='登录账号5-10字符'; 
sp1.style.color='red'; 
return false; 
} 
}return true; 
} 
//验证昵称 
function check_nicheng(obj){ 
var sp2=$('sp2'); 
if(obj.value==''){ 
sp2.innerHTML='登录账号不能为空'; 
sp2.style.color='red'; 
return false; 
}else{ 
var reg=/^\w{5,10}$/i; 
if(reg.test(obj.value)){ 
sp2.innerHTML='正确'; 
sp2.style.color='green'; 
return true; 
}else{ 
sp2.innerHTML='昵称5-10字符'; 
sp2.style.color='red'; 
return false; 
} 
}return true; 
} 
//验证密码 
function check_pwd(obj2){ 
var sp4=$('sp4'); 
if(obj2.value==''){ 
sp4.innerHTML='密码不能为空'; 
sp4.style.color='red'; 
return false; 
}else{ 
var reg=/^\w{6,}$/; 
if(reg.test(obj2.value)){ 
sp4.innerHTML='正确'; 
sp4.style.color='green'; 
return true; 
}else{ 
sp4.innerHTML='格式不正确'; 
sp4.style.color='red'; 
return false; 
} 
}return true; 
} 
//验证确认密码 
function check_repwd(obj3){ 
var sp5=$('sp5'); 
var pwd=$('pwd'); 
var repwd=$('repwd'); 
if(obj3.value==''){ 
sp5.innerHTML='密码不能为空'; 
sp5.style.color='red'; 
return false; 
}else{ 
if(obj3.value==pwd.value){ 
sp5.innerHTML='正确'; 
sp5.style.color='green'; 
return true; 
}else{ 
sp5.innerHTML='确认密码和密码不一致'; 
sp5.style.color='red'; 
return false; 
} 
}return true; 
} 
//验证性别 
num2=0; 
function check_sex(){ 
var sex=document.getElementsByName('sex'); 
// var sp4=document.getElementById('sp4') 
for(var i=0;i<sex.length;i++){ 
if(sex[i].checked==true){ 
num2=num2+1; 
} 
} 
//alert(num2); 
if(num2!=0){ 
sp3.innerHTML='√'; 
sp3.style.color='green'; 
return true; 
}else{ 
sp3.innerHTML='性别不能为空'; 
sp3.style.color='red'; 
return false; 
} 
} 
//验证姓名 
function check_username(obj){ 
var sp6=$('sp6'); 
if(obj.value==""){ 
sp6.innerHTML='用户名不能为空'; 
sp6.style.color='red'; 
return false; 
}else{ 
var reg=/^[\u4e00-\u9fa5]{2,3}$/; 
if(!reg.test(obj.value)){ 
sp6.innerHTML='用户名应该2-3个汉字'; 
sp6.style.color='red'; 
return false; 
}else{ 
sp6.innerHTML='√'; 
sp6.style.color='green'; 
return true; 
} 
} 
return true; 
} 
//验证邮箱 
function check_email(obj5){ 
var sp8=$('sp8'); 
if(obj5.value==''){ 
sp8.innerHTML='邮箱不能为空'; 
sp8.style.color='red'; 
return false; 
}else{ 
var reg=/^(\w+@\w+(\.)com|net|cn)$/; 
if(reg.test(obj5.value)){ 
sp8.innerHTML='正确'; 
sp8.style.color='green'; 
return true; 
}else{ 
sp8.innerHTML='格式不正确'; 
sp8.style.color='red'; 
return false; 
}return true; 
} 
} 
//验证身份证号 
function check_idcard(obj9){ 
var sp7=$('sp7'); 
if(obj9.value==''){ 
sp7.innerHTML='身份证号不能为空'; 
sp7.style.color='red'; 
return false; 
}else{ 
var reg=/^\d{18}|\d{17}x$/i; 
if(reg.test(obj9.value)){ 
sp7.innerHTML='正确'; 
sp7.style.color='green'; 
return true; 
}else{ 
sp7.innerHTML='格式不正确'; 
sp7.style.color='red'; 
return false; 
}return true; 
} 
} 
//生成验证码 
function yanzheng(){ 
var sp9=document.getElementById('sp9'); 
var str1=""; 
for(var i=1;i<=4;i++){ 
str1=str1+parseInt(Math.random()*10); 
sp9.innerHTML=str1; 
} 
} 
//验证验证码 
function check_number(){ 
var number=document.getElementById('number').value 
var sp10=document.getElementById('sp10') 
var sp9=document.getElementById('sp9'); 
if(number==""){ 
sp10.innerHTML='验证码不能为空'; 
sp10.style.color='red'; 
return false; 
}else{ 
if(number!=sp9.innerHTML){ 
sp10.innerHTML='验证码和你写的不一致'; 
sp10.style.color='red'; 
return false; 
} else{ 
sp10.innerHTML='√'; 
sp10.style.color='green'; 
return true;} 
return true; 
} 
} 
function check_all(){ 
if(check_zhanghao($('zhanghao')) & check_nicheng($('nicheng')) & check_pwd($('pwd')) & check_repwd($('repwd')) & check_sex()& check_username($('username')) & check_idcard($('idcard')) &check_email($('email')) & check_number() ){ 
return true;} 
else{ return false;} 
} 
</script> 
</body> 
</html>

php正则验证

<?php 
header("content-type:text/html;charset=utf8"); 
//var_dump($_POST);die; 
//array(5) { ["uname"]=> string(9) "刘伟超" ["uqq"]=> string(10) "1111111111" ["uemail"]=> string(12) "66555@qq.com" ["utel"]=> string(11) "15863162320" ["uinfo"]=> string(48) "地方开始放假开放活动健康的话概括" } 
empty($_POST["uname"])?$uname="":$uname=$_POST["uname"]; 
empty($_POST["uemail"])?$uemail="":$uemail=$_POST["uemail"]; 
empty($_POST["utel"])?$utel="":$utel=$_POST["utel"]; 
empty($_POST["uqq"])?$uqq="":$uqq=$_POST["uqq"]; 
empty($_POST["uinfo"])?$uinfo="":$uinfo=$_POST["uinfo"]; 
//验证姓名 
$reg="/^[\x{4e00}-\x{9fa5}]{2,3}$/u"; 
if(!preg_match($reg,$uname)){ 
echo "用户名应该2-3个汉字";die; 
//header("refresh:1;url=form.html"); 
} 
//验证邮箱 
$reg="/^(\w+@\w+(\.)com|net|cn)$/"; 
if(!preg_match($reg,$uemail)){ 
echo "邮箱必须含有@,且以com结尾";header("refresh:1;url=form.html"); die; 
} 
//验证座机号 
$reg="/^\d{11}$/"; 
if(!preg_match($reg,$utel)){ 
echo "座机号以010-22222222格式";header("refresh:1;url=form.html"); die; 
} 
//验证QQ号 
$reg="/^\d{5,11}$/"; 
if(!preg_match($reg,$uqq)){ 
echo "qq必须是5-11位纯数字";header("refresh:1;url=form.html"); die; 
} 
//验证简介 
/*$reg="/^[\x{4e00}-\x{9fa5}]{10,100}\W+/u"; 
if(!preg_match($reg,$uinfo)){ 
echo "简介应该10-100个汉字";die; 
//header("refresh:1;url=form.html"); 
} 
*/ 
//连接数据库 
$link=mysql_connect('127.0.0.1','root','root')or die("连接失败"); 
//选择数据库 
mysql_select_db('kaoshi',$link); 
//设置字符集 
mysql_query("set names utf8"); 
//写sql语句 
$sql="insert into zhuce(c_name,c_qq,c_email,c_tel,c_info) values('$uname','$uqq','$uemail','$utel','$uinfo')"; 
//echo $sql;die; 
$rel=mysql_query($sql); 
if($rel){ 
echo "注册成功";header("refresh:1;url=show.php"); 
}else{echo "注册失败";header("refresh:1;url=form.html");} 
?>

以上所述是小编给大家介绍的Ajax和PHP正则表达式验证表单及验证码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP 模板高级篇总结
Dec 21 PHP
php intval的测试代码发现问题
Jul 27 PHP
php xml-rpc远程调用
Dec 19 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
php实现过滤UBB代码的类
Mar 12 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
如何修改yii2.0自带的user表为其它的表
Aug 01 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 #PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 #PHP
轻松掌握php设计模式之访问者模式
Sep 23 #PHP
PHP接收App端发送文件流的方法
Sep 23 #PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 #PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 #PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 #PHP
You might like
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php返回json数据函数实例
2014/10/09 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python笔记之facade模式
2019/11/20 Python
pytorch数据预处理错误的解决
2020/02/20 Python
超级实用的8个Python列表技巧
2020/08/24 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
英国家电直销:Appliances Direct
2016/09/22 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
甜点店创业计划书
2014/01/27 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
明星邀请函
2015/02/02 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
结婚典礼致辞
2015/07/28 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers