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

发布时间 - 2026-01-11 00:29:30    点击率:

先给大家说下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模式的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# js正则表达式  # g  # JS中正则表达式全局匹配模式 /g用法详解  # javascript正则表达式参数/g与/i及/gi的使用指南  # JS正则表达式修饰符global(/g)用法分析  # 正确使用带有"g"标记的javascript正则表达式  # JavaScript正则表达式中g标志详解  # 正则表达式  # 如果你  # 模式下  # 小编  # 的是  # 第一个  # 在此  # 是从  # 给大家  # 如果没有  # 所示  # 不带  # 它会  # 到底是什么  # 所述  # 给我留言  # 到尾  # 感谢大家  # 先给  # 与非 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: java中使用zxing批量生成二维码立牌  如何撰写建站申请书?关键要点有哪些?  如何快速搭建高效服务器建站系统?  javascript基本数据类型及类型检测常用方法小结  java获取注册ip实例  高防服务器租用如何选择配置与防御等级?  如何用免费手机建站系统零基础打造专业网站?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  JS实现鼠标移上去显示图片或微信二维码  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  教你用AI润色文章,让你的文字表达更专业  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  香港服务器如何优化才能显著提升网站加载速度?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  如何在宝塔面板创建新站点?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  高端云建站费用究竟需要多少预算?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何自定义错误页面(404, 500)?(代码示例)  在线制作视频的网站有哪些,电脑如何制作视频短片?  Android Socket接口实现即时通讯实例代码  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel如何实现用户注册和登录?(Auth脚手架指南)  怎么用AI帮你为初创公司进行市场定位分析?  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel如何处理CORS跨域请求?(配置示例)  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何用y主机助手快速搭建网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何续费美橙建站之星域名及服务?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何实现API资源集合?(Resource Collection教程)  如何在建站之星网店版论坛获取技术支持?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  iOS中将个别页面强制横屏其他页面竖屏  如何用VPS主机快速搭建个人网站?