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 相关文章推荐
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
May 10 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
Feb 03 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
javascript实现简单的省市区三级联动
May 14 Javascript
javascript数据类型验证方法
Dec 31 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
Sep 20 Javascript
使用canvas及js简单生成验证码方法
Apr 02 Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 Javascript
JSX在render函数中的应用详解
Sep 04 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
Laravel5中contracts详解
2015/03/02 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
Python 中迭代器与生成器实例详解
2017/03/29 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
python递归全排列实现方法
2018/08/18 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
在python中pandas的series合并方法
2018/11/12 Python
Python3.4解释器用法简单示例
2019/03/22 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
上海中网科技笔试题
2012/02/19 面试题
大学毕业生通用求职信
2013/09/28 职场文书
前台接待岗位职责
2013/12/03 职场文书
迟到检讨书400字
2014/01/13 职场文书
CAD制图设计师自荐信
2014/01/29 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
创业计划书介绍
2019/04/24 职场文书
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js