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 操作DOM案例代码分享
Apr 05 Javascript
JavaScript调试技巧之console.log()详解
Mar 19 Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
bootstrap模态框消失问题的解决方法
Dec 02 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
JS Array.from()将伪数组转换成数组的方法示例
Mar 23 Javascript
解决vue动态下拉菜单 有数据未反应的问题
Aug 06 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
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
node.js 抓取代理ip实例代码
2017/04/30 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
javascript回调函数详解
2018/02/06 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
Python迭代用法实例教程
2014/09/08 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
python实现八大排序算法(1)
2017/09/14 Python
Python构建网页爬虫原理分析
2017/12/19 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
护士自我介绍信
2014/01/13 职场文书
高中教师评语大全
2014/04/25 职场文书
中学生演讲稿
2014/04/26 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
通知的格式范文
2015/04/27 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
利用python做数据拟合详情
2021/11/17 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js
5个实用的JavaScript新特性
2022/06/16 Javascript