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 相关文章推荐
线路分流自动跳转代码;希望对大家有用!
Dec 02 Javascript
js 匿名调用实现代码
Jun 19 Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
May 12 Javascript
js取模(求余数)隔行变色
May 15 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
JavaScript检测鼠标移动方向的方法
May 22 Javascript
跟我学习javascript的this关键字
May 28 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
Ionic3实现图片瀑布流布局
Aug 09 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
vue-rx的初步使用教程
2018/09/21 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
videocapture库制作python视频高速传输程序
2013/12/23 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python3实现逐字输出的方法
2019/01/23 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
python实现LRU热点缓存及原理
2019/10/29 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
大学共青团员个人自我评价
2014/04/16 职场文书
环保倡议书300字
2014/05/15 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
升职自荐信怎么写
2015/03/05 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
初中地理教学反思
2016/02/19 职场文书
业余无线电通联Q语
2022/02/18 无线电
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python