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 相关文章推荐
Javascript 更新 JavaScript 数组的 uniq 方法
Jan 23 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
使用uni-app开发微信小程序的实现
Dec 13 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
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
PHP时间类完整代码实例
2021/02/26 PHP
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
python 简单的多线程链接实现代码
2016/08/28 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
Python类的动态绑定实现原理
2020/03/21 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
签约仪式策划方案
2014/06/02 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
商铺门面租房协议书
2014/10/21 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
2016十一国庆节感言
2015/12/09 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis