本文实例讲述了正则表达式基本语法及表单验证操作。分享给大家供大家参考,具体如下:

正则表达式是一种可以用于模式匹配和替换的强有力的工具,是数据的有效性验证。
一、基本语法
位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
1. 较为常用的元字符包括: “+”, “*”,以及 “?”。
“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。
“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
例:
/fo+/因为正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”,“fo”,或“football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
/eg*/因为正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”,“ego”,或“egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
/Wil?/因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”,或“Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。
2. 有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件 必须要出现多少次才能满足匹配。
{n} n是一个非负整数。匹配确定的n次。例'o{2}'不能匹配”Bob”中的 ‘o',但是能匹配”food”中的两个o。
{n,} n是一个非负整数。至少匹配n次。例'o{2,}'不能匹配”Bob”中的 ‘o',但能匹配”fooood”中的所有o。'o{1,}'等价于'o+'。'o{0,}'则等价于'o*'。
{n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例”o{1,3}”将匹配”foooood”中的前三个o。'o{0,1}'等价于'o?'
请注意在逗号和两个数之间不能有空格。
3.几个重要的元字符的使用方式:
\s:用于匹配单个空格符,包括tab键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从0到9的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
(说明:我们可以把\s和\S以及\w和\W看作互为逆运算)
/\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
/\d000/ 如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。
4.除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。 较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。
“^”定位符规定匹配模式必须出现在目标字符串的开头
“$”位符规定匹配模式必须出现在目标对象的结尾
“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为结尾。
同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。
举例来说: /^hell/ 因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或“hellhound”开头的字符串相
匹配。 /ar$/ 因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。
/\bbom/ 因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。
/man\b/因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。
说明:
为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:
/[A-Z]/上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
/[a-z]/上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
/[0-9]/ 上述正则表达式将会与从0到9范围内任何一个数字相匹配。
/([a-z][A-Z][0-9])+/ 上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。
这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。
如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 “|”。
正则表达式中还有一个较为常用的运算符,即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。
例如:/[^A-C]/上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;
而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。
最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。例如:/Th\*/上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。
二、使用实例
在JavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否
包含匹配模式,并相应的返回true或false。
语法: re = new RegExp("pattern",["flags"])
re——必选项。将要赋值为正则表达式模式的变量名。
pattern——必选项。要使用的正则表达式模式。
flags——可选项。要用引号将 flag 引起来。标志可以组合使用,可用的有:g (全文查找出现的所有 pattern) i (忽略大小写) m (多行查找)
常用正则:
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?
非单字节 [^\x00-xff]
1.返回一个含有汉子的字符串长度
function getlength(str){
return str.replace(/[^\x00-xff]/g,"xx").length;
}
2.用户名6-25个字符,不能有非法字符
oName.onblur=function(){
var re=/[^\w\u4e00-\u9fa5]/g;
if (re.test(this.value)){
name_msg.innerHTML='含有非法字符!';
}
else if(this.value){
name_msg.innerHTML='用户名不能为空!';
}
else if(name_length>25){
name_msg.innerHTML='长度超过25个字符!';
}
else if(name_length<6){
name_msg.innerHTML='长度少于6个字符!';
}
else{ OK; }
}
3.用户设置密码,不能为空、相同字符、全为数字、全为字母
pwd.onblur=function(){
if(this.value==""){pwd_msg.innerHTML='不能为空!'}
}
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# 正则表达式
# 基本语法
# 表单验证
# Javascript中正则表达式的使用及基本语法
# JS正则表达式一条龙讲解(从原理和语法到JS正则)
# 详解js正则表达式语法介绍
# 老生常谈JavaScript 正则表达式语法
# JavaScript正则表达式上之基本语法(推荐)
# javascript正则表达式定义(语法)总结
# js正则表达式基本语法(精粹)
# js 玩转正则表达式之语法高亮
# 正则表达式语法规则及在Javascript和C#中的使用方法
# javascript中正则表达式语法详解
# 象中
# 相匹配
# 将会
# 出现在
# 多个
# 浮点数
# 英文字母
# 中以
# 下划线
# 格式为
# 任何一个
# 是一个
# 为空
# 我们可以
# 可以使用
# 正整数
# 可以用来
# 运算符
# 操作技巧
相关文章:
建站之星如何优化SEO以实现高效排名?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
山东网站制作公司有哪些,山东大源集团官网?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
已有域名如何快速搭建专属网站?
如何高效生成建站之星成品网站源码?
c# 在ASP.NET Core中管理和取消后台任务
网站好制作吗知乎,网站开发好学吗?有什么技巧?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
建站主机是什么?如何选择适合的建站主机?
C++如何编写函数模板?(泛型编程入门)
制作网站的模板软件,网站怎么建设?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
css网站制作参考文献有哪些,易聊怎么注册?
临沂网站制作企业,临沂第三中学官方网站?
个人网站制作流程图片大全,个人网站如何注销?
学校为何禁止电信移动建设网站?
,巨量百应是干嘛的?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
公司网站制作价格怎么算,公司办个官网需要多少钱?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何解决ASP生成WAP建站中文乱码问题?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
音乐网站服务器如何优化API响应速度?
ppt制作免费网站有哪些,ppt模板免费下载网站?
建站之星导航配置指南:自助建站与SEO优化全解析
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
制作证书网站有哪些,全国城建培训中心证书查询官网?
网站制作壁纸教程视频,电脑壁纸网站?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
海南网站制作公司有哪些,海口网是哪家的?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
建站10G流量真的够用吗?如何应对访问高峰?
公司网站设计制作厂家,怎么创建自己的一个网站?
香港服务器选型指南:免备案配置与高效建站方案解析
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何零基础在云服务器搭建WordPress站点?
代刷网站制作软件,别人代刷火车票靠谱吗?
历史网站制作软件,华为如何找回被删除的网站?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
红河网站制作公司,红河事业单位身份证如何上传?
如何通过云梦建站系统实现SEO快速优化?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作表格网站有哪些,线上表格怎么弄?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
如何选择PHP开源工具快速搭建网站?
Swift中switch语句区间和元组模式匹配
怀化网站制作公司,怀化新生儿上户网上办理流程?
*请认真填写需求信息,我们会在24小时内与您取得联系。