使用 JavaScript 正则表达式进行全局匹配

2024-04-22

通常当你做类似的事情时'test'.match(/(e)/)你会收到一个数组['e', 'e'],其中第一个元素是匹配本身,第二个元素是选择器(大括号),但是当使用全局修饰符时,如'test'.match(/(e)/g)它会忽略匹配,但如果我根本不使用选择器则不会。

我想知道是否以及在何处指定了以下行为(使用 Chromium 进行此测试)。


如果未设置全局标志 (g),则数组的元素 0 包含整个匹配项,而元素 1 到 n 包含任何子匹配项。此行为与未设置全局标志时 exec 方法(正则表达式)(JavaScript) 的行为相同。如果设置了全局标志,则元素 0 到 n 包含发生的所有匹配项。

http://msdn.microsoft.com/en-us/library/ie/7df7sf4x(v=vs.94).aspx http://msdn.microsoft.com/en-us/library/ie/7df7sf4x(v=vs.94).aspx

换句话说,当g提供,match仅收集最上面的匹配项,忽略任何捕获组。

Example:

> s = "Foo Bar"
"Foo Bar"
> s.match(/([A-Z])([a-z]+)/)
["Foo", "F", "oo"]
> s.match(/([A-Z])([a-z]+)/g)
["Foo", "Bar"]

没有内置程序可以收集所有比赛中的所有组,例如 pythonfindall确实如此,但是使用它很容易编写exec:

function matchAll(re, str) {
    var p, r = [];
    while(p = re.exec(str))
        r.push(p);
    return r;
}
matchAll(/([A-Z])([a-z]+)/g, "Foo Bar")

Result:

[
Array[3]
0: "Foo"
1: "F"
2: "oo"
index: 0
input: "Foo Bar"
length: 3
__proto__: Array[0]
, 
Array[3]
0: "Bar"
1: "B"
2: "ar"
index: 4
input: "Foo Bar"
length: 3
__proto__: Array[0]
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaScript 正则表达式进行全局匹配 的相关文章

  • Vue.js + Element UI:在更改时获取“event.target”

    我无法获取在事件处理程序中触发事件的 html 字段 在 javascript 中是event target 我有一个表格 附加到更改事件函数的输入元素 管理更改事件的函数 我的代码如下 var Main methods change pa
  • 使用referrer javascript从google获取查询参数

    是否可以从google搜索中获取查询参数 IE 如果有人用谷歌搜索自行车 网址就会变成 https www google es search q bicycles 如果您随后进入搜索结果并且有人点击您的页面 您将无法看到带有 documen
  • Socket.io 如何判断某人何时离开

    我正在使用 socket io 创建一个实时游戏 目前 当有人离开时 什么也不会发生 我想以某种方式通知服务器说谁离开了 有没有办法在用户离开时发出正确的信息 我可以让服务器每 1000 毫秒对每个人执行一次 ping 操作 或者通过其他方
  • 禁用 chrome React DevTools 以进行生产

    我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE ENV 因此 我可以删除反应警告 控制台中的错误报告 甚至我的代码来禁用某些功能 例如react addons perf的要求 而且效果很
  • Chart.js 渲染垂直堆积条形图太慢

    我正在使用 Chart js API 渲染多个堆叠的垂直条形图 但性能很慢 我什至做了一些改变 这样所有的content对象已经由服务器而不是浏览器处理 但我意识到大部分时间来自最终函数new Chart overallStatsChart
  • 从具有多行记录的文件中提取数据,将每个范围保存到单独的文件中

    我有一个看起来像这样的文件 TRANSACTION STARTED 020t CARD INSERTED 020tCARD 5845 DATE 01 02 16 TIME 05 45 52 05 46 26 GENAC 1 ARQC EXT
  • 当 img.crossOrigin="Anonymous" 时,Chrome MJPEG CORS“响应无效”

    Image from origin http 192 168 1 67 5555 has been blocked from loading by Cross Origin Resource Sharing policy Invalid r
  • 图表js不显示

    我正在尝试使用 Charts js 创建一个简单的折线图 当我运行下面的代码时 没有出现图表 我究竟做错了什么 我正在关注这个教程http www chartjs org docs latest getting started http w
  • 将表单传递给 AngularJS 组件进行验证

    我正在将旧代码库迁移到 AngularJS 1 5 所推广的新组件架构 我在对较大的表单执行此操作时遇到了问题 传统上 我会附加表单验证 如下所示
  • 如何使用 javascript/ASP.NET/CSS 旋转和淡入淡出背景图像

    我需要随机淡入淡出背景图像 这将是一个定时函数 例如每 5 秒一次 我需要使用 ASP NET Javascript CSS 或全部三者来完成此操作 请大家帮帮我 谢谢 Cycle 一个 jQuery 插件 是一个非常灵活的图像旋转解决方案
  • 从字符串中提取电子邮件地址

    我有一个像这样的字符串 Francesco Renga lt email protected cdn cgi l email protection gt 我只需要提取电子邮件 即 电子邮件受保护 cdn cgi l email protec
  • 使用 Moment.js 从 ISO 字符串中提取 utcOffset

    使用 moment js 我尝试从 ISO 日期字符串中提取偏移量 以便稍后在格式化纪元时间戳时使用该偏移量 以确保时间戳的转换位于同一时区 即使字符串中的偏移量为 0400 结果始终为0 var currentTime 2015 03 1
  • 检测 JavaScript 版本

    如何检测浏览器支持的 JavaScript 版本 如果有 我想检查 ECMAScript 3 ECMAScript 5 和 ECMAScript 6 注意 我想避免已弃用的language tag 这里有一个很好的参考给你 http www
  • 如何从矩形点计算旋转角度?

    我有4分1 2 3 4闭合一个矩形 这些点按以下方式排列在数组中 x1 y1 x2 y2 x3 y3 x4 y4 我遇到的问题是矩形可以旋转一定角度 如何计算原始点 灰色轮廓 和角度 我试图在 javascript css3 transfo
  • 如何为多个元素添加Class?

    我正在使用这段 javascript 向多个元素添加一个类 我试图引用多个 div 并向它们添加类 它只适用于第一个 JavaScript
  • 如何在 Vue.js 2 中使用事件总线通过自定义事件传递数据

    我在用着Vue js 2 5 x 在我的玩具项目中 我实现了一个事件总线 类似于所示的here https alligator io vuejs global event bus 事件总线在 Vue 原型中全局注册为 eventBus 然后
  • Boolean("false") 返回 true..还有其他选择吗?

    我正在使用 jquery 将 true 和 false 字符串写入 data html 属性 但是 当我将 false 写入其中一个属性 然后检查它是否为 false 时 它 会返回 true 我还在网上读到它应该这样做 这真的毫无意义 有
  • 同源政策目的可疑

    正如我所读到的 同源策略是防止源自 邪恶 域 A 的脚本向 良好 域 B 发出请求 换句话说 跨站点请求伪造 玩了一下我了解到的Access Control Allow Origin标头和CORS据我了解 它允许从好域 B 指定服务器 域
  • 检测未定义的对象属性

    如何检查 JavaScript 中的对象属性是否未定义 检查属性值是否为特殊值的常用方法undefined is if o myProperty undefined alert myProperty value is the special
  • 为什么转换 new.Date() .toISOString() 会改变时间?

    我正在以两种不同的格式在数据库中插入日期 这是作为日期时间插入 var mydate mydate new Date document getElementById clockinhour value mydate toISOString

随机推荐

  • pip install ortools:没有匹配的发行版 - Alpine

    在 Docker 中 我尝试运行 pip install ortools 但找不到 其他 pip 安装包可以完美运行 我在 Dockerfile 中使用 FROM python 3 6 8 alpine bash 4 4 pip insta
  • 实体框架:获取存储库中的子类对象

    我有与下面列出的数据库表对应的以下模型 经理就是雇员 会计师也是雇员 让所有管理器都进入存储库的最佳方法是什么 如何实现GetAllManagers 方法 这是正确的TPT吗 CODE MyRepository MyEmployeeRepo
  • schema.org 产品可用性标签标记

    哪一个是正确的 span span 我检查了官方模式文档 并在示例中找到了所有这些 我想它们都可以 但目前有什么首选标准吗 Using span与content属性是invalid HTML5 和 Microdata 都不允许content
  • Amazon S3 静态网站不提供 css 或 js 文件

    我一直在尝试在 Amazon S3 上建立一个静态网站 我已经设置好使用我的个人域 到目前为止我已经能够很好地访问内容 所有链接都有效 无论是 根 目录中的页面还是子文件夹中的页面 因此 S3 似乎可以遵循我正在使用的路径 问题是没有任何
  • 根据另一个数据库的查询结果查询一个数据库

    我在 VS 2013 中使用 SSIS 我需要从 1 个数据库获取 ID 列表 并使用该 ID 列表 我想查询另一个数据库 即SELECT from MySecondDB WHERE ID IN list of IDs from MyFir
  • 扩展 Three.js 类

    我想扩展 Three js Object3D 类 但不知道该怎么做 有一个 Stackoverflow 问题 我已经阅读 重新阅读和尝试过 但无法让它为我工作 有没有办法扩展 ThreeJS 对象 https stackoverflow c
  • Xcode 服务:选择 Git 分支

    我开始在 Mavericks 中设置新的 Xcode 服务 我创建了一个新的机器人 但没有询问我它应该构建的分支 如何为每个机器人选择分支 我不仅想建造master 但也有不同的分支 在当前版本中 当您在 Xcode 中创建机器人时 它将链
  • 如何将音乐播放器保留在页脚中,当我单击子页面的链接时,该音乐播放器不会重新加载?

    我已经尝试解决这个问题有一段时间了 并且浏览了许多论坛来寻找解决方案 这是我的设置 任何帮助将不胜感激 我目前有一个索引页 在 内容 部分的上方和下方加载 JavaScript 页眉和页脚 我在标题内还有一个导航链接列表 我的音乐播放器位于
  • 将向量::emplace_back与shared_ptr一起使用

    include
  • 无法让 mongoid 与 Rails 4 一起使用

    我是按照官方教程来的 http mongoid org en mongoid docs installation html 我在 Gemfile 中注释掉了 sqlite3 以及以下几行 gem mongoid gt 4 github mo
  • RandomNumberGenerator 与 RNGCryptoServiceProvider

    根据 MSDN 文档随机数生成器 http msdn microsoft com en us library system security cryptography randomnumbergenerator 28v VS 71 29 a
  • Android Fabric Twitter 分享监听器

    我使用 Fabric SDK 从我的应用程序发送推文 我构建了一个共享对话框并从活动中发送推文 Override protected void onCreate Bundle savedInstanceState super onCreat
  • 提取文本文件每行第一个逗号之前的文本

    我有一个如下所示的文件 Breve a writ used more frequently in the plural brevia Brevia magistralia official writs framed by the clerk
  • React Router V4 侧边栏菜单中的错误

    我正在开发一个单页 ReactJS Web 应用程序 但我知道我在定义路由时做错了什么React Router V4 我的问题如下 PrivateRoute in my routes js文件未按预期工作 也就是说 我不知道为什么 但我的侧
  • Node js 中的响应标头数据为 zip

    我已经尝试使用此代码在标头中发送响应 zip 但我这边缺少一些内容 在此我得到的响应如屏幕截图所示 这是我的代码 const zipPath test zip I have a zip with 2 files inside it pass
  • 如何在不使用某些框架的情况下在 php 中实现 MVC

    我对模型 视图 控制器模式有一些 也许是基本的 知识 我想使用它创建一个网站 但我发现如何实际实现这一点有点令人困惑 我陷入了细节之中 假设我有一个网站 每个用户都保存一些待办事项列表 你会如何处理这个问题 你会创建什么类 哪个类将输出 H
  • SQL Server 2008事务,需要回滚吗?

    我有一个存储过程BEGIN TRANSACTION and COMMIT TRANSACTION陈述 事务中是一个选择查询WITH XLOCK ROWLOCK 如果提供超出范围的值 则由于某些计算会导致算术溢出错误 交易可能会失败 此错误会
  • 非常慢:ActiveRecord::QueryCache#call

    我在 Heroku 上有一个应用程序 在 Puma 上运行 workers 2 threads count 3 pool 5 看起来有些请求被困在中间件中 这使得应用程序非常慢 非常 我看到其他人讨论过这个问题 但到目前为止还没有解决方案
  • digest_path 和 asset_digest_path 不允许摘要 URL

    我在制作资产方面经历了一段相当艰难的时期 归根结底 我试图重写 sprokets 辅助模块来尝试看看发生了什么 当我将其重写为以下内容时 module Sprockets module Rails module Helper def com
  • 使用 JavaScript 正则表达式进行全局匹配

    通常当你做类似的事情时 test match e 你会收到一个数组 e e 其中第一个元素是匹配本身 第二个元素是选择器 大括号 但是当使用全局修饰符时 如 test match e g 它会忽略匹配 但如果我根本不使用选择器则不会 我想知