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同步Import,同步调用外部js的方法
Jul 08 Javascript
基于Jquery的开发个代阴影的对话框效果代码
Jul 28 Javascript
js替换字符串的所有示例代码
Jul 23 Javascript
AngularJS中的模块详解
Jan 29 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
JS实现图片局部放大或缩小的方法
Aug 20 Javascript
Javascript实现基本运算器
Jul 15 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
浅谈javascript事件环微任务和宏任务队列原理
Sep 12 Javascript
vue实现可移动的悬浮按钮
Mar 04 Vue.js
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中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
学习ExtJS table布局
2009/10/08 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
js中运算符&& 和 || 的使用记录
2014/08/21 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
python批量生成本地ip地址的方法
2015/03/23 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
python散点图实例之随机漫步
2018/08/27 Python
pandas数据拼接的实现示例
2020/04/16 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Python3开发环境搭建详细教程
2020/06/18 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
Django如何重置migration的几种情景
2021/02/24 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
销售会计工作职责
2013/12/02 职场文书
市场推广策划方案
2014/06/02 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
python实现过滤敏感词
2021/05/08 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL