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 相关文章推荐
Javascript数组操作函数总结
Feb 05 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
Aug 26 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
May 24 Javascript
Javascript动画效果(3)
Oct 11 Javascript
js中数组的常用方法小结
Dec 30 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
vue中子组件调用兄弟组件方法
Jul 06 Javascript
详解mpvue开发小程序小总结
Jul 25 Javascript
vuex的module模块用法示例
Nov 12 Javascript
微信小程序实现点击图片放大预览
Oct 21 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
yii框架配置默认controller和action示例
2014/04/30 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
js实现div色块碰撞
2020/01/16 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Python通过poll实现异步IO的方法
2015/06/04 Python
利用Python开发实现简单的记事本
2016/11/15 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python奇偶行分开存储实现代码
2018/03/19 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
利用python实现汉诺塔游戏
2021/03/01 Python
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
毕业生求职推荐信
2013/11/04 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
电气自动化求职信
2014/06/24 职场文书
闪闪红星观后感
2015/06/08 职场文书
超市店长竞聘书
2015/09/15 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang