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 相关文章推荐
网页中的图片的处理方法与代码
Nov 26 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
Dec 18 Javascript
Js实现滚动变色的文字效果
Jun 16 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
Mar 23 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
jQuery实现Email邮箱地址自动补全功能代码
Nov 03 Javascript
JS中作用域和变量提升(hoisting)的深入理解
Oct 31 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 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
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
PHP导入Excel到MySQL的方法
2011/04/23 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
jquery foreach使用示例
2013/09/12 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
Vue指令指令大全
2019/02/09 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python 登录网站详解及实例
2017/04/11 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
中英双版中文教师求职信
2013/10/27 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
毕业论文评语大全
2014/04/29 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
给朋友的道歉短信
2015/05/12 职场文书
解析MySQL索引的作用
2022/03/03 MySQL
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle