javascript 中的正则表达式非捕获组

2023-11-27

我对我的正则表达式和 JavaScript 有点生疏。我有以下字符串变量:

var subject = "javascript:loadNewsItemWithIndex(5, null);";

我想提取5使用正则表达式。这是我的正则表达式:

/(?:loadNewsItemWithIndex\()[0-9]+/)

像这样应用:

subject.match(/(?:loadNewsItemWithIndex\()[0-9]+/)

结果是:

loadNewsItemWithIndex(5

什么是最干净、最易读的提取方式5作为单行?是否可以通过排除来做到这一点loadNewsItemWithIndex(来自匹配而不是匹配5作为一个子组?


返回值来自String.match是一个匹配数组,因此您可以在数字部分两边加上括号,然后只检索特定的匹配索引(其中第一个匹配是整个匹配结果,后续条目针对每个捕获组):

var subject = "javascript:loadNewsItemWithIndex(5, null);";
var result = subject.match(/loadNewsItemWithIndex\(([0-9]+)/);
                                    //             ^      ^  added parens
document.writeln(result[1]);
                  //    ^ retrieve second match (1 in 0-based indexing)

示例代码:http://jsfiddle.net/LT62w/

Edit:感谢@Alan 对非捕获匹配如何工作的更正。

事实上,它运行得很好。在 a 内匹配的文本 非捕获组仍然被消耗,与匹配的文本相同 任何团体之外。捕获组就像非捕获组 具有额外的功能:除了分组之外,它还允许您 独立于整体匹配提取匹配的任何内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 中的正则表达式非捕获组 的相关文章

随机推荐

  • 什么是实体?为什么叫实体?

    在谈论实体框架时 什么是实体 它是数据存储的内存中表示 例如 SQL 表 实体足够聪明 可以跟踪更改并将这些更改应用到数据存储中 还有什么其他的吗 它来自系统工程领域 他们使用实体关系图设计系统的工具 他们所做的首先是布置实体 例如客户 采
  • 可以在 Javascript 中比较两个图像吗?

    有没有办法比较两个具有不同文件名的图像文件 所以我想看看它们是否与 javascript 相同 这可能吗 这样做的用途 我有一个图像库需要在灯箱中弹出 当灯箱打开时 我将连接到回调以检查重复的图像 并在找到时将它们从灯箱库中删除 这样用户就
  • 无法在 TypeScript 中从 Observable.bindNodeCallback(fs.readFile) 创建 observable

    我正在尝试使用rxjs 5用 TypeScript 编写 Node js 服务器 但在转换时遇到错误fs readFile其 rxjs 形式 我希望以下代码可以在 TypeScript 中运行 This is a JavaScript ex
  • 清除矩形不工作

    我正在用 javascript 做一个 Pong 游戏 以便学习制作游戏 并且我想让它面向对象 我无法得到clearRect上班 它所做的只是画一条越来越长的线 这是相关代码 function Ball this radius 5 this
  • 在C中将int转换为char

    现在我正在尝试在 C 编程中将 int 转换为 char 经过研究 我发现我应该能够这样做 int value 10 char result char value 我想要的是返回 A 0 9 返回 0 9 但我认为这会返回一个新行字符 我的
  • 如何检查变量或对象是否未定义?

    我一直以为我可以通过将未定义的变量与未定义的变量进行比较来检查它 但这是我在 chrome 控制台中收到的错误 我如何检查 jQuery 对象是否未定义 EDIT if jQuery 也给我带来了问题 EDIT 解决方案 if window
  • 使用 Google Analytics 进行 Flutter 日志事件

    我已经在我的 flutter 应用程序中设置了 Google Analytics 这一切似乎都按标准运行 数据通过并显示在分析控制台屏幕上 向用户显示 事件计数之类的事情 我看到默认事件是 user engagement screen vi
  • CakePHP 3.0 -> 查找条件之间

    是否可以执行 BETWEEN AND cakephp 2 5 中的条件类似于 cakephp 2 5 在 cakephp 2 5 中我写了类似的东西 conditions gt start date BETWEEN AND gt 2014
  • 如何使用 css 隐藏元素,同时仍将其保留在页面上?

    我试图隐藏页面上的一个元素 但我仍然希望它存在 我想要一个仍然可以单击的按钮 但我希 望它不可见 隐藏元素并保持页面位置的方法有3种 您可以获得有关之间的更多信息正常流量和css样式 即 opcity visibility 属性关系 能见度
  • java.lang.IllegalStateException:恢复下溢 - 恢复多于保存

    我在用rippleeffect library对于我的项目 但在Android Nougat and Marshmallow 应用程序因该库而崩溃 compile com github traex rippleeffect library
  • sqlite 将“dd.MM.yyyy”格式字符串转换为日期

    我的 android 上有一个 sqlite 数据库 其中有一个日期时间列 其中包含格式为 dd MM yyyy 的日期 这不是我的数据库 我无法更改日期格式 我想将数据库中的日期与代表第二个日期的字符串进行比较 但我尝试的一切都失败了 如
  • 带 mexCallMATLAB 的 Matlab mex 文件几乎比相应的 m 文件慢 300 倍

    我开始用 C 实现一些 m 文件以减少运行时间 m 文件生成 n 维点并计算这些点处的函数值 这些函数是用户定义的 它们作为函数句柄传递到 m 文件和 mex 文件 mex 文件使用 mexCallMATLAB 和 feval 来查找函数值
  • 如何在 Spring Data MongoDB 中使用乐观锁?

    我正在经历Spring Data MongoDB 参考文档我发现这些例子有点过于简单化 特别是我试图了解如何在并发环境中处理过时的数据 例如 假设我有以下实体 public class Person private final String
  • 在 Android 中将视图放置在 FrameLayout 中

    我想以编程方式在 FrameLayout 内添加视图 并将其放置在具有特定宽度和高度的布局内的特定点中 FrameLayout支持这个吗 如果不是 我应该使用中间 ViewGroup 来实现此目的吗 int x Can be negativ
  • 为什么我会收到 int.class 转换的类转换异常

    在下面的程序中我不明白为什么有ClassCastException为演员从int class Update 我应该指定我知道什么是原始类型 What I don t understand is why int class is provid
  • `zip` 和 `zip_longest` 之间是否有中间立场

    假设我有这三个列表 a 1 2 3 4 b 5 6 7 8 9 c 10 11 12 是否有一个内置函数 somezip a b 1 5 2 6 3 7 4 8 somezip a c 1 10 2 11 3 12 4 None 行为介于两
  • 如何使用 WiX 为关联文件设置图标?

    我的应用程序安装文件是使用 WiX 生成的 在 WiX 配置中 我关联了与应用程序一起使用的文件类型 如何在 WiX 配置中将图标与此文件类型相关联 FROM https www firegiant com wix tutorial get
  • 如何使用存储删除然后恢复非索引更改,而不会在 git 中出现合并冲突?

    我希望能够使用索引的当前状态运行项目测试 忽略未提交的工作更改 我稍后计划将其添加到预提交挂钩中 但是 我无法弄清楚如何以永远不会导致合并冲突的方式删除然后恢复非索引更改 我需要这个 因为它是由脚本运行的 所以完成后它不应该改变存储库状态
  • 使用 Ruby 从 HTML 文档中删除文本

    有很多关于如何使用 Ruby 从文档中删除 HTML 标签的示例 Hpricot 和 Nokogiri 都有 inside text 方法 可以轻松快速地为您删除所有 HTML 我想做的恰恰相反 从 HTML 文档中删除所有文本 只留下标签
  • javascript 中的正则表达式非捕获组

    我对我的正则表达式和 JavaScript 有点生疏 我有以下字符串变量 var subject javascript loadNewsItemWithIndex 5 null 我想提取5使用正则表达式 这是我的正则表达式 loadNews