javascript学习笔记(十二) RegExp类型介绍


Posted in Javascript onJune 20, 2012

1.匹配模式标记:
g ------ 表示全局模式,而不是发现第一个匹配成功就立刻结束
i ------- 表示不区分大小写模式
m ----- 表示多行匹配,一行结束时向下一行继续匹配

//匹配第一个bat 或cat,不区分大小写 
var pattern1 = /[bc]at/i 
var pattern2 = new RegExp("[bc]at","i"); //同上

使用RegEXp是字面量模式要转换成字符串
/\[bc\]at/ =======> "\\[bc\\]at"
/\.at/ ==========> "\\.at"
/name\/age/ ======> "name\\/age"
/\d.\d{1,2}/ ======> "\\d.\\d{1,2}"
/\w\\hello\\123/ ====>"\\w\\\\hello\\\\123

2.RegExp实例属性
global —— 布尔值,表示是否设置了g 标志
ignoreCase —— 布尔值,表示是否设置了i 标志
multiline —— 布尔值,表示是否设置了m 标志
lastIndex —— 整数,表示开始搜索下一个匹配项的位置
source —— 字面量形式的字符串

var pattern2 = new RegExp("\\[bc\\]at","i"); 
alert(pattern2.source); //"\[bc\]at"

3.RegExp实例方法
exec()方法 接受一个参数,即应用正则表达式的字符串,
返回数组和两个属性index和input,数组第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串
var text "mom and dat and baby"; 
var pattern = /mom( and dad( and baby)?)?/gi; var matches = pattern.exec(text); 
alert(matches.index); //0 
alert(matches.input); //"mom and dad and baby" 
alert(matches[0]); //"mom and dad and baby" 
alert(matches[1]); //" and dad and baby" 
alert(matches[2]); //" and baby"

非全局模式时每次调用exec()返回的都是第一次匹配的项
全局模式时每次调用ecec()返回字符串的下一个匹配项,lastIndex的值会增加

test()方法 接受一个参数,即应用正则表达式的字符串,匹配返回 true 否则返回 false

var text = "000-00-0000"; 
var pattern = /\d{3}-\d{2}-\d{4}/; if (pattern.test(test)) { 
alert("匹配!"); 
}

4.RegExp 构造函数属性
var text = "this has been a short summer"; 
var pattern = /(.)host/g; if (pattern.test(text)){ 
alert(RegExp.input); //this has been a short summer 最近一次要匹配的字符串,等价于RegExp.$_ ,opera不支持 
alert(RegExp.lastMatch); //short 最近一次的匹配项,等价于RegExp["$&"] ,opera不支持 
alert(RegExp.lastParen); //s 最近一次匹配的捕获组,等价于RegExp["$+"] ,opera不支持 
alert(RegExp.leftContext); //this has been a 匹配项前的文本,等价于RegExp["$`"] 
alert(RegExp.rightContext); // summer 匹配项后的文本,等价于RegExp["$‘"] , 
alert(RegExp.multiline); //false 是不是多行模式,等价于RegExp["$*"] ,opera和IE都不支持 
}

RegExp.$1 …… RegExp.$9 存储捕获组
var text = "this has been a short summer"; 
var pattern =/(..)or(.)/g; 
if (pattern.test(text)) { 
alert(RegExp.$1); //sh 
alert(RegExp.$2); //t 
}
Javascript 相关文章推荐
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
js表格分页实现代码
Sep 18 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
Mar 13 Javascript
AngularJS自动表单验证
Feb 01 Javascript
checkbox批量选中,获取选中项的值的简单实例
Jun 28 Javascript
整理关于Bootstrap警示框的慕课笔记
Mar 29 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
Dec 20 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
Oct 31 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
js实现微信聊天效果
Aug 09 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 #Javascript
javascript学习笔记(十) js对象 继承
Jun 19 #Javascript
javascript学习笔记(九) js对象 设计模式
Jun 19 #Javascript
javascript学习笔记(八) js内置对象
Jun 19 #Javascript
javascript学习笔记(七) js函数介绍
Jun 19 #Javascript
javascript学习笔记(六) Date 日期类型
Jun 19 #Javascript
javascript学习笔记(五) Array 数组类型介绍
Jun 19 #Javascript
You might like
Terran魔法科技
2020/03/14 星际争霸
php操作mysql数据库的基本类代码
2014/02/25 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
js读取cookie方法总结
2014/10/31 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
Vue实现购物车功能
2017/04/27 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
python实现基于SVM手写数字识别功能
2020/05/27 Python
使用python爬取B站千万级数据
2018/06/08 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
浅析PEP572: 海象运算符
2019/10/15 Python
python3.8下载及安装步骤详解
2020/01/15 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
教师自荐书
2013/10/08 职场文书
岗位职责的定义
2013/11/10 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
请假条范文大全
2014/04/10 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python