JS中使用正则表达式g模式和非g模式的区别


Posted in Javascript onApril 01, 2017

先给大家说下js正则表达式中的g到底是什么意思

g是global的缩写啊!

就是匹配全部可匹配结果,

如果你不带g,在正则过程中,字符串是从左至右匹配的,如果匹配成功就不再继续向右匹配了,如果你带g,它会重头到尾的把正确匹配的字符串挑选出来

例如:

var str = 'aaaaaaaa'
var reg1 = /a/
var reg2 = /a/g
str.match(reg1)  // 结果为:["a", index: 0, input: "aaaaaaaa"]
str.match(reg2)  // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]

js正则表达式g模式与非g模式的区别,具体代码如下所示:

<!DOCTYPE html> 
<html> 
<head lang="en"> 
  <meta charset="UTF-8"> 
  <title>mischen</title> 
  <script> 
    //js中使用正则表达式 
    function test(){ 
      //生成正则表达式对象; 
      // 在g模式下,正则表达式对象的exec和test方法,依赖 正则表达式对象的lastIndex属性,而lastIndex会根据我们exec 
      // 和test的执行 发生偏移  如果没有相应匹配  lastIndex 重归0 
      //在非g模式下,正则表达式对象的exec和test方法, lastIndex 不会发生偏移 
      //exec方法 如果正则表达式中 有分组  第一个返回的是 匹配到的字符串 后面是根据分组分别返回的匹配的 字符串 
      var reg=new RegExp("\\d+[a-z]+","ig"); //字符串里 \ 表示转译 
      var str="123abc123def"; 
      alert(reg.lastIndex);//0 
      alert(reg.exec(str));//123abc 
      alert(reg.lastIndex);//6 
      alert(reg.test(str));//true 
      alert(reg.lastIndex);//12 
    } 
   // test(); 
    test1(); 
    function test1(){ 
      //非g模式下使用 exec 和test 
      var reg=new RegExp("\\d+[a-z]+","i"); 
      var str="123abc123def"; 
//      alert(reg.lastIndex);//0 
//      alert(reg.exec(str));//123abc 
//      alert(reg.lastIndex);//0 
//      alert(reg.test(str));//true 
//      alert(reg.lastIndex);//0 
//      alert(reg.exec(str));//123abc 
//      alert(reg.lastIndex);//0 
//      alert(reg.test(str));//true 
//      alert(reg.lastIndex);//0 
      var reg=new RegExp("(\\d+)([a-z]+)","i"); 
      alert(reg.exec(str));//123abc,123,abc 
      alert(reg.exec(str));//123abc,123,abc 
    } 
  </script> 
</head> 
<body> 
</body> 
</html>

以上所述是小编给大家介绍的JS中使用正则表达式g模式和非g模式的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery的实例及必知重要的jQuery选择器详解
May 20 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
js判断出两个字符串最大子串的函数实现方法
Nov 01 Javascript
js实现点击按钮弹出上传文件的窗口
Dec 23 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
基于Vue实现拖拽功能
Jul 29 Javascript
JavaScript实现的反序列化json字符串操作示例
Jul 18 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
Apr 21 Javascript
vue输入框使用模糊搜索功能的实现代码
May 26 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
Oct 30 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 #jQuery
微信小程序网络请求的封装与填坑之路
Apr 01 #Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
Apr 01 #Javascript
Node.js之网络通讯模块实现浅析
Apr 01 #Javascript
vue-cli+webpack记事本项目创建
Apr 01 #Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 #Javascript
Vue.js实战之Vuex的入门教程
Apr 01 #Javascript
You might like
聊天室php&amp;mysql(二)
2006/10/09 PHP
模仿OSO的论坛(四)
2006/10/09 PHP
PHP 数组遍历顺序理解
2009/09/09 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
Python中functools模块的常用函数解析
2016/06/30 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
python @classmethod 的使用场合详解
2019/08/23 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
客户经理岗位职责
2013/12/08 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
yy婚礼主持词
2014/03/14 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
环保建议书作文500字
2015/09/14 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
关于python爬虫应用urllib库作用分析
2021/09/04 Python