javascript - 匹配第一次出现的下划线后跟数字并替换 html 中的匹配集

标签 javascript html regex

我有以下字符串:

foo_0_13
foz[0][bar][]
far_0

我有一个约定,需要从像 foo_0_13 这样的字符串进行匹配和far_2下划线和后面的数字,例如 _0_2 ...对于具有结构 foz[0][bar][] 的任何字符串或foz[3]我需要匹配[0][3]

我已经尝试过((\_\d)|\[\d\])但这匹配 _0_1 ,我怎样才能让它只匹配_0

我只需要查找第一次出现的“下划线数字”组合。

第二部分:

如果我有一个多次出现 _0 的 html 分区和[0]

<div id="foo_0_13" name="bar[0][xxx][]"> <p id="par_0">Test</p> </div>

我需要将所有这些事件替换为 _1这样html就变成了

<div id="foo_1_13" name="bar[1][xxx][]"> <p id="par_1">Test</p> </div>

知道我正在使用 javascript,我如何详细说明这一点以获得所需的 html?

最佳答案

您可以尝试以下正则表达式替换。

var res = str.replace(/("[a-z]+[_[])\d+/g, '$01' + '1'); // 1 = new digit

See regex demo at regex101js fiddle

在替换中,我使用 '$01' + '1' 只是为了在视觉上将反向引用组 1 与新添加的数字分开。实际上,替换将是 $11$011 其中最后一个 to be preferred .

关于javascript - 匹配第一次出现的下划线后跟数字并替换 html 中的匹配集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35540618/

相关文章:

html - 如何为 <div >'s and <img>' s 制作边框?

swift - 在 Swift 中使用特殊字符转义正则表达式

regex - 从 Postgresql 中的列中仅获取第一个字母单词

javascript - 单击时图表 js 背景颜色更改

javascript:如何制作具有相同数据的多个组合框

java - 在浏览器中调用 Java 方法

python - 什么最适合字符串提取或模式匹配 regex/awk/emacs lisp?

javascript - 带有 promise/async-await 的回调上下文

javascript - 电子邮件正则表达式与 Ruby 和 Javascript 兼容

javascript - 迷你图具有误导性