用JS与正则表达式验证表单数据格式的方法
关丽梅
根据表单数据项的实际内容不同一般都有一个标准的数据格式要求,当表单数据准备提交到服务器之前我们应该在客户端先进行校验,格式合格再交到服务器进行进一步处理,如果格式不合格就先弹出错误提示并不提交,这样不仅能提高网页与用户的交互效率还能减轻服务器处理的负担。一般来讲这个客户端进行的格式校验可以使用JS结合正则表达式来完成。
一、什么是正则表达式
正则表达式英文全称是Regular Expression,简称regexp。是一种描述字符串结构的语法规则,是一个特定的格式化模式,它可以匹配、替换、截取匹配的字符串。
二、正则表达式的语法规则
1.正则表达式变量的定义
JS风格: var re=new RegExp(‘a’);
Perl风格:var re=/a/
以上对比可见perl风格代码简单方便,所以我们一般使用perl风格。
2.正则表达式的首尾定位符
js正则表达式判断数字^ :匹配字符串的开始位置。
$ :匹配字符串的结束位置。
如^ab,代表匹配以ab开头的字符串,x$,代表匹配以x结尾的字符串。
3.单个字符[]
如[m]代表匹配小写字母m,如果不区分大小写就写成[Mm],代表匹配一个字符M或m
4.选择字符 |
选择字符理解为“或”,如匹配数字1或小写h就可以写成(1|h)
5.连字符-
连字符用于指定一个字符范围,如[a-z]代表a到z之间的任意一个小写字母。
6.限定符?*+{n,m}
匹配前面的字符零次或一次
+ 匹配前面的字符一次或多次
* 匹配前面的字符零次或多次
{n} 匹配前面的字符n次
{n,} 匹配前面的字符最少n次
{n,m}匹配前面的字符最少n次,最多m次
7.点字符.
匹配换行符以外的任意一个字符
8.转义符
将特殊字符变为普通字符,如匹配点字符本身就可以使用\.
9.括号字符( )
用于限定范围或分组,
如(th|tr)s代表匹配ths或者trs,如果去掉括号写成th|trs 就代表匹配th或者trs了。
([0-9]a){3},代表将[0-9]a一起重复3次,如果去掉括号写成[0-9]a{3}就代表将a重复3次了。
10.反斜杠\
\d 任意一个0到9之间的数字
\w 任意一个单词字符,相当于[a-zA-Z0-9_ ]
三、验证表单数据的正则表单式写法
以某注册表单为例,表单的html代码如下:
<form id="form1" action="doRegister.php" method="post"
onsubmit="return checkform()">
<h3>用户注册</h3>
手机号:
<input type="text" name="phone" id="phone"/>
<br/><br />
身份证号:
<input type="text" name="IDcard" id="IDcard"/>
<br/><br />
邮 箱:
<input type="text" name="email" id="email"/>
<br/><br />
<input type="submit" value="提交"/>
<input type="reset" value="取消"/>
</form>
1.手机号的正则表达式写法。汉字规则描述:号码共有11位数字,第一位数字只能是1,第二位只能是3或5或8,第3到11位可以是任意数字字符。正则表达式描述:/^1[3|5|8]\d{9}$/
2.身份证号的正则表达式写法。汉字规则描述:一共18位数字,前6位是区号,其中第一位只能是0到8。中间4位年份,其中前2位只考虑19或20。2位月份,第一位只能是0或1。两位日期,第一位可以是0到3。3位顺序码是任意数字。1位校验码是0到9的数字或字母X。
正则表达式描述:/^([0-8]\d{5})((19|20)\d{2})([01]\d)([0-3] \
d)(\d{3})[\d|X]$/
3.邮箱的正则表达式写法。汉字规则描述:第一部分有
自 由 谈
. All Rights Reserved.
226
一串英文字母、数字或下划线,第二部分是“@”,第三部分是一串字母或数字,第四部分是点“.” ,第五部分是一串字母。以上的英文都大小写均可。
正则表达式描述:/^\w+@[a-z0-9]+\.[a-z]+/i$/
以上表达式中的参数/i表示字母的大小写均可。
四、设计JS代码实现表单提交的数据校验
<script type="text/javascript">
function checkform(){
var strReg=/^1[358]\d{9}$/;
var reg=new RegExp(strReg);
var val=form1.phone.value;
if(!st(val)){
alert('手机号格式不正确');
return false;
}
var
strReg=/^([0-8]\d{5})((19|20)\d{2})([01]\d)([0-3]\d)(\d{3})[\d|X]$/;
var reg=new RegExp(strReg);
var val=form1.IDcard.value;
if(!st(val)){
alert('身份证号格式不正确');
return false;
}
var strReg=/^\w+@[a-z0-9]+\.[a-z]+$/i;
var reg=new RegExp(strReg);
var ail.value;
if(!st(val)){
alert('邮箱格式不正确');
return false;
}
}
五、小结
将以上表单网页运行并输入数据进行测试,发现只要格式不合格的均弹出错误提示框并停留在本网页,只有数据格式输入规范的情况下才能跳转并提交到网页doRegister.php 进行处理。做到了低级格式错误在客户端完成,即提高了用户的交互效率也减轻了服务端的负担。这些都是利用JS结合正则表
单式实现的。
(作者单位:武汉城市职业学院)
(上接第266页)
费的支持下,团队中3名成员赴深圳职业技术学院动画学院就实习实践活动的展开调研,形成调研报告一份,目前已经将广告学院原来的顶岗实习课程实施模式进行了调整,改变一名教师带一个班的粗放式指导模式为导师制,每个老师最多负责8名同学的实习指导工作,并与毕业设计(论文)的指导紧密结合,规范指导教师对学生顶岗实习全过程指导流程,提出合理的实习指导老师工作量计算办法。制定了《北京联合大学广告学院艺术本科学生校外实习手册》.
因为受到扩招的影响,不是所有学生都能如愿到专业对口的工作单位实习,考虑到这一点,我们每个老师负责解决他所带学生落实实习单位,或跟随导师做项目,如表演专业的学生不可能所有人都在话剧院实习,但会有一些剧目的演出以及微电影拍摄等实践内容,我们可以把他们安排在其中,既保证了专业对口,也让学生得以锻炼。
4.2建立完善的专业实习监管体系
4.2.1实习质量控制
学校教学管理委员会负责对学生校外实习的各项工作进行全过程监督,检查顶岗实习计划制定情况。校内指导老师要与学生和实习单位保持联系,了解学生的实习计划执行情况,及时发现并解决问题;实习期间,校内指导老师每月至少和企业指导老师联系一次,并如实做好学生《校外实习手册》中“指导记录”的填写作为毕业实习进行的各种校外实习,在实习结束后各专业要检查《学生校外实习手册以及毕业设计(论文)完成情况。在实践教学结束一周内,各专业收集学生和实习单位对学生实习的建议和信息,并及时向学院反馈。作为毕业实习进行的各种校外实习,学院应及时统计实习成果、设计作品论文专业技能证书通过情况等基本信息,并上报学院并做好记录。
4.3创新与改革的意义及影响
通过实地考察以及安排学生到企业实习,使学生们在毕业前熟悉他们将要从事的工作岗位,了解企业。在实习过程中了解企业文化、精神和企业的质量意识、竞争意识影响、教育学生养成良好的习惯,综合素质有显著的提高。另外由学院教师带队选拔优秀学生深入到企业学习以后,被企业重用以后,全面负责技术工作,并留在企业任职,大大解决了学生就业率以及就业质量。学生综合素质明显提高。因双导师制管理学生并共同打造的工作室以及实训基地,专业教师的课程开发能力得到显著提高,2014年获得校级教学成果奖一等奖一项。专业教师水平全面提升。专业实习加强了学校和企业、学生和教师、教师和企业间的合作,特别是教师与企业专家成立双导师制工作室、实训基地,教师和学生共同参与企业产品开发工作中,同时艺术类专业教师积极开展应用项目研究、科技成果推广、生
产技术服务等。校企合作进一步加强。
应用型本科艺术类的专业实习是提高学生独立思考问题,有效地培养学生分析、解决问题能力的重要实践教学手段。对提高学生的综合素质以及培养学生综合能力是十分必要的。
(作者单位:北京联合大学艺术学院)
. All Rights Reserved.
227

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。