javascript正则表达式参数/g与/i及/gi的使用指南


Posted in Javascript onAugust 27, 2014

regularexpression=/pattern/[switch]

这个switch就有三种值 g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写 JScript 语言参考

--------------------------------------------------------------------------------

后向引用 正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。请回想一下,对一个正则表达式模式或部分模式两边添加圆括号将导致这部分表达式存储到一个临时缓冲区中。可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对这部分正则表达式的保存。

所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

后向引用一个最简单,最有用的应用是提供了确定文字中连续出现两个相同单词的位置的能力。请看下面的句子: Is is the cost of of gasoline going up up? 根据所写内容,上面的句子明显存在单词多次重复的问题。如果能有一种方法无需查找每个单词的重复现象就能修改该句子就好了。下面的 JScript 正则表达式使用一个子表达式就可以实现这一功能。

/\b([a-z]+) \1\b/gi等价的 VBScript 表达式为:

"\b([a-z]+) \1\b"

在这个示例中,子表达式就是圆括号之间的每一项。所捕获的表达式包括一个或多个字母字符,即由'[a-z]+' 所指定的。该正则表达式的第二部分是对前面所捕获的子匹配的引用,也就是由附加表达式所匹配的第二次出现的单词。'\1'用来指定第一个子匹配。单词边界元字符确保只检测单独的单词。如果不这样,则诸如 "is issued" 或 "this is" 这样的短语都会被该表达式不正确地识别。

在 JScript 表达式中,正则表达式后面的全局标志 ('g') 表示该表达式将用来在输入字符串中查找尽可能多的匹配。大小写敏感性由表达式结束处的大小写敏感性标记 ('i') 指定。多行标记指定可能出现在换行符的两端的潜在匹配。对 VBScript 而言,在表达式中不能设置各种标记,但必须使用 RegExp 对象的属性来显式设置。

使用上面所示的正则表达式,下面的 JScript 代码可以使用子匹配信息,在一个文字字符串中将连续出现两次的相同单词替换为一个相同的单词:

var ss = "Is is the cost of of gasoline going up up?.\n"; var re = /\b([a-z]+) \1\b/gim; //创建正则表达式样式.var rv = ss.replace(re,"$1"); //用一个单词替代两个单词.

Javascript 相关文章推荐
javascript中万恶的function实例分析
May 25 Javascript
Jquery命名冲突解决的五种方案分享
Mar 16 Javascript
javascript抽象工厂模式详细说明
Dec 16 Javascript
javascript实现日期格式转换
Dec 16 Javascript
jQuery实现的简洁下拉菜单导航效果代码
Aug 26 Javascript
浅谈js的url解析函数封装
Jun 28 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
Nov 09 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
Node.js中process模块常用的属性和方法
Dec 13 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 jQuery
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 #Javascript
JavaScript实现的in_array函数
Aug 27 #Javascript
JavaScript AJAX之惰性载入函数
Aug 27 #Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 #Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
Aug 27 #Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 #Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 #Javascript
You might like
php学习之 数组声明
2011/06/09 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
图片之间的切换
2006/06/26 Javascript
Js 中debug方式
2010/02/07 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
基于Python的接口测试框架实例
2016/11/04 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
出纳岗位职责范本
2013/12/01 职场文书
九年级家长会邀请函
2014/01/15 职场文书
总裁助理岗位职责
2014/02/17 职场文书
销售求职信范文
2014/05/26 职场文书
拓展策划方案
2014/06/03 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
golang语言指针操作
2022/04/14 Golang