javascript - 使用正则表达式,有条件地替换为 $1 或空字符串

标签 javascript regex

我想在 JavaScript 中创建一个函数,它接受两个参数:一个正则表达式对象和一个字符串。
正则表达式最多可以有一个捕获组。
如果有捕获组则返回$1,否则返回剩余的字符串;

因此 myfunc("hello123",/\d+/) 应返回 hello 且
myfunc("hello123",/\w+(\d+)/) 应返回 123

如何判断是否存在捕获组?

最佳答案

使用match时,如果模式根本无法匹配,则返回null。如果存在匹配,则索引 0 处的字符串将是完全匹配,而后续索引将包含捕获组。基本上第一个捕获组将位于索引 1 处,依此类推。

关于javascript - 使用正则表达式,有条件地替换为 $1 或空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23804716/

相关文章:

javascript - 如何在 node.js 应用程序中使用 RethinkDB 管理多个用户变更源

javascript - 在 ajax 调用后,当我点击页面跳转到顶部

javascript - jQuery .change() 未在选择时触发 - 来自 api.jquery.com 的示例

regex - 为什么字符类比交替更快?

javascript - 如何使用同一子域上的 URL 访问 iframe 的元素?

javascript - 从今天起获得先前值(value)的最佳方式

用于生成 slug 的 Java 代码/库(用于漂亮的 URL)

regex - Vim:匹配 html 属性名称

java - 使用正则表达式获取子字符串

javascript - 如何为用户名约束创建 jQuery Validator 方法?