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 学习笔记(四)
Dec 31 Javascript
JS实现当前页居中分页效果的方法
Jun 18 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
May 21 Javascript
js学习笔记之事件处理模型
Oct 31 Javascript
jQuery基于正则表达式的表单验证功能示例
Jan 21 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
Angular directive递归实现目录树结构代码实例
May 05 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
详解a标签添加onclick事件的几种方式
Mar 29 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+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
php实现微信支付之企业付款
2018/05/30 PHP
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
Javascript实现单例模式
2016/01/24 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python实现按中文排序的方法示例
2018/04/25 Python
基于python实现名片管理系统
2018/11/30 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
应届生护士求职信
2013/11/01 职场文书
青春寄语大全
2014/04/09 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
2014年评职称工作总结
2014/11/20 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
Vue的生命周期一起来看看
2022/02/24 Vue.js