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 相关文章推荐
JavaScript prototype对象的属性说明
Mar 13 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
May 16 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 Javascript
Django使用多数据库的方法
Sep 06 Javascript
微信小程序实现发红包功能
Jul 11 Javascript
从零开始实现Vue简单的Toast插件
Dec 03 Javascript
vue插槽slot的理解和使用方法
Apr 03 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
three.js如何实现3D动态文字效果
Mar 03 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编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
Vue实现简单分页器
2018/12/29 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
python简单区块链模拟详解
2019/07/03 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
python识别验证码的思路及解决方案
2020/09/13 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
写给老师的表扬信
2014/01/21 职场文书
爱护花草树木的标语
2014/06/11 职场文书
党员自我对照检查材料
2014/08/19 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技