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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
JS DOM 操作实现代码
Aug 01 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
JS实现的DIV块来回滚动效果示例
Feb 07 Javascript
详解Webpack实战之构建 Electron 应用
Dec 25 Javascript
vue 中动态绑定class 和 style的方法代码详解
Jun 01 Javascript
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
WEEX环境搭建与入门详解
Oct 16 Javascript
在Vue项目中使用Typescript的实现
Dec 19 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 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
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
详解jQuery选择器
2016/12/21 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python学习思维导图(必看篇)
2017/06/26 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
2015应届毕业生自荐信范文
2015/03/05 职场文书
python自动化八大定位元素讲解
2021/07/09 Python
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技