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 相关文章推荐
广告显示判断
Aug 31 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
javascript 回调函数详解
Nov 11 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
JavaScript代码判断点击第几个按钮
Dec 13 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
Sep 05 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 Javascript
webpack学习教程之前端性能优化总结
Dec 05 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
Aug 10 Javascript
JS中判断字符串存在和非空的方法
Sep 12 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 数据库树的遍历方法
2009/02/06 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
vue数据双向绑定原理解析(get & set)
2017/03/08 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python实现代码统计工具(终极篇)
2016/07/04 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python和php哪个更适合写爬虫
2020/06/22 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
银行金融服务方案
2014/06/11 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
八月一日观后感
2015/06/10 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技