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 相关文章推荐
列表内容的选择
Jun 30 Javascript
JavaScript 内置对象属性及方法集合
Jul 04 Javascript
JavaScript 原型链学习总结
Oct 29 Javascript
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
jquery ui bootstrap 实现自定义风格
Nov 14 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
Jul 15 Javascript
JS实现的自定义右键菜单实例二则
Sep 01 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
Dec 26 Javascript
js实现黑白div块画空心的图形
Dec 13 Javascript
如何在微信小程序中实现Mixins方案
Jun 20 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 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
数字转英文
2006/12/06 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
基于JQuery制作的产品广告效果
2010/12/08 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Python实现网络端口转发和重定向的方法
2016/09/19 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
python树莓派红外反射传感器
2019/01/21 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
外贸业务员岗位职责
2013/11/24 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
毕业实习计划书
2015/01/16 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
如何利用Python实现一个论文降重工具
2021/07/09 Python
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript