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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
浅析js中的浮点型运算问题
Jan 06 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
Js表格万条数据瞬间加载实现代码
Feb 20 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
Apr 14 Javascript
javascript相关事件的几个概念
May 21 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
Node.js的Mongodb使用实例
Dec 30 Javascript
EasyUI中的dataGrid的行内编辑
Jun 22 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 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仿微信多图片预览上传实例代码
2016/09/13 PHP
JQuery魔力之$("tagName")与selector
2012/03/05 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
Python中条件判断语句的简单使用方法
2015/08/21 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
深入理解Python中的*重复运算符
2017/10/28 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
安全生产承诺书
2014/03/26 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
学风建设演讲稿
2014/09/12 职场文书
2014年收银工作总结
2014/11/13 职场文书
小学生节水倡议书
2015/04/29 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL
Nginx配置之禁止指定IP访问
2022/05/02 Servers