Javascript的表单验证-揭开正则表达式的面纱


Posted in Javascript onMarch 18, 2016

推荐阅读:Javascript的表单验证长度

Javascript的表单验证-提交表单

Javascript的表单验证-初识正则表达式

在上篇文章给大家介绍了javascript的表单验证-初识正则表达式,本文给大家介绍Javascript的表单验证-揭开正则表达式的面纱,具体详情请看全文。

用元字符匹配相应的字符类型

创建正则表达式有点像创建字符串字面量,只不过正则表达式出现在一对”/”里

正则表达式中会用到一级元字符,用于连接字母与数字

“.” 匹配任何字符,除换行符外

“\d”匹配任何数字字符

“\w”匹配任何字母或数字字符

“\s”匹配空格

“^”字符串需以模式起始

“$”字符串需以模式结束

元字符不只表示一个字面量字符,它乃是用于构建正则表达式的符号

例:这里有三个字符

“A”,”7”,”%”

/\w/可以匹配”A”,”7”

/^\d/可以匹配”7”

/\d/可以匹配”7”

/./可以匹配”A”,”7”,”%”

但是包含多个字符的字符串怎么办?

“2nite”,”007”,”catch22”,

/^\d/可匹配到”2nite”,”007”(开头都是数字)

/\d\d\d/可匹配”007”(一行中有3个数字)

/^cat/可匹配”catch22”(以cat字符开头)

/\d\d$/可匹配”catch22”(必须以两个数字来结尾)

例如:匹配美国邮编,邮编格式为#####-####

/^\d\d\d\d\d-\d\d\d\d$/

用限定符指定字符出现的次数

限定符用于控件子模式出现于正则表达式里的次数

限定符前为子模式,限定符即应用在子模式,并控制子模式出现在模式里的次数

“*”限定符前的子模式必须出现0次或多次

“+”限定符前的子模式必须出现1次或多次

“?”限定符前的子模式必须出现0次或1次

“{n}”限定符前的子模式必须恰好出现N次

“()”集合字符或/和元字符,成为子模式

同样是以邮政编码为例

/^\d{5}-\d{4}$/

可以看出,加上限定符的表达式比只有元字符的表达式更加的精准

/\w*/匹配任何字母数字字符,包括空字符串

/.+/匹配一个出现一次以上的字符串(用于匹配非非空的字符串)

/(Hot)??Donuts/可匹配出Hot或Donuts

*在正则表达式里想要匹配具有特殊意义的字符的时候,可以用反斜杠

例如匹配$:\$*

利用正则表达式验证数据

JavaScript里的正则表达式由RegExp对象表示,其中包含使用正则表达式验证数据的关键?test()方法,它检查字符串里是否存在指定的模式

例:

var regex=/^\d{5}$/;//匹配5位数邮政编码的正则表达式;

正则表达式对象字面量自动合建RegExp对象

if(!regex.test(inputFiled.value)) 
{ 
//在正则表达式上调用text方法 
//如果符合合正则表达式的要求,返回true 
//如果不符合正则表达式的要求,返回false 
}

代码案例

接下来,写一个专门用来验证字符串格式的方法

//regex正则表达式
//inputStr需要验证的字符串
//helpText提供信息提示的一个span标签
//helpMessage提示信息内容
//
function validateRegExp(regex,inputStr,helpText,helpMessage)
{
if(!regex.test(inputStr))
{
if(helpText!=null)
helpText.innerHTML=helpMessage;
return false;
}
else{
if(helpText!=null)
helpText.innerHTML="";
}
return true;
}
function validateDate(inputFild,helpText)
{
if(!validateNonEmpty(inputFild,helpText)//先检查参数是非空的
{
return false;
}
return validateRegExp(/^\d{2}\/\d{2}\/\d{4}$/,inputFild,helpText,"请输入正确的日期格式");//调用正则验证方法
}

好了,本文到此结束,感谢大家对三水点靠木网站支持!

Javascript 相关文章推荐
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
Javascript 类与静态类的实现
Apr 01 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
May 09 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
Nov 23 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
js实现获取鼠标当前的位置
Dec 14 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
解决vue 绑定对象内点击事件失效问题
Sep 05 Javascript
jQuery pjax 应用简单示例
Sep 20 jQuery
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
Sep 02 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 #Javascript
Javascript的表单验证-提交表单
Mar 18 #Javascript
Javascript的表单与验证-非空验证
Mar 18 #Javascript
悬浮广告方法日常收集整理
Mar 18 #Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 #Javascript
深入理解JavaScript程序中内存泄漏
Mar 17 #Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
Mar 17 #Javascript
You might like
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php+highchats生成动态统计图
2014/05/21 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
python中去空格函数的用法
2014/08/21 Python
wxPython中listbox用法实例详解
2015/06/01 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
python 元组和列表的区别
2020/12/30 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
诚信考试承诺书
2014/03/27 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
督导岗位职责范本
2015/04/10 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
高三数学教学反思
2016/02/18 职场文书
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技