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 相关文章推荐
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
详解JavaScript的变量和数据类型
Nov 27 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
基于jQuery实现二级下拉菜单效果
Feb 01 Javascript
浅谈如何使用 webpack 优化资源
Oct 20 Javascript
关于Vue在ie10下空白页的debug小结
May 02 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
基于vue的video播放器的实现示例
Feb 19 Vue.js
如何选择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 信息采集程序代码
2009/03/17 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
纯javascript版日历控件
2016/11/24 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
使用Kivy将python程序打包为apk文件
2017/07/29 Python
python实现学生管理系统
2018/01/11 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
文员个人求职自荐信
2013/09/21 职场文书
七年级政治教学反思
2014/02/03 职场文书
初中作文评语大全
2014/04/23 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
创业计划书之面包店
2019/09/17 职场文书
导游词之长城八达岭
2019/09/24 职场文书