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 相关文章推荐
jqPlot jquery的页面图表绘制工具
Jul 25 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
Jan 12 Javascript
可以用鼠标拖动的DIV实现思路及代码
Oct 21 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
javascript闭包传参和事件的循环绑定示例探讨
Apr 17 Javascript
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
将Sublime Text 3 添加到右键中的简单方法
Dec 12 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
Jun 27 Javascript
如何基于jQuery实现五角星评分
Sep 02 jQuery
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
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
详解php命令注入攻击
2019/04/06 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
基于jquery自定义图片热区效果
2012/07/21 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
python将txt文件读取为字典的示例
2018/12/22 Python
python 字符串常用函数详解
2019/09/11 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
浅析Python 多行匹配模式
2020/07/24 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
化学系大学生自荐信范文
2014/03/01 职场文书
软件测试专业推荐信
2014/09/18 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
出纳岗位职责
2015/01/31 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
基层工作经历证明
2015/06/19 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS