javascript - 替换方括号中的文本,但不替换紧随其后的文本

标签 javascript regex

我有一些与此类似的 HTML:

<input value="" name="test[0][test_inner_one]" type="text">
<input value="" name="test[0][test_inner_two]" type="text">
<input value="" name="test[0][test_inner_three]" type="text">

我想做的就是仅用其他内容替换 0,但我无法计算正则表达式。
因此,例如,替换后,它应该如下所示:

<input value="" name="test[1][test_inner_one]" type="text">
<input value="" name="test[1][test_inner_two]" type="text">
<input value="" name="test[1][test_inner_three]" type="text">

整个事情的想法是我正在克隆 HTML,并且 0 和它之前的文本不会是静态的,所以例如它不会总是 test[0 ] 但它将采用以下格式 some_text[index][some_other_text],我只需要替换“index”。
任何帮助将不胜感激。

最佳答案

看起来你可以简单地使用这个:

var newName = name.replace(/\[0]/, '[1]');

或者更简单地,去掉正则表达式:

var newName = name.replace('[0]', '[1]');

更新

要替换仅包含数字的任何大括号对,请使用如下内容:

var newName = name.replace(/\[\d+]/, '[1]');

要只替换第一对括号的内容,无论它包含什么内容,都可以使用这个

var newName = name.replace(/\[.*?]/, '[1]');

这是有效的,因为替换方法只会替换找到的第一个匹配项(除非在正则表达式中启用了 g 标志)。

关于javascript - 替换方括号中的文本,但不替换紧随其后的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711091/

相关文章:

Java 正则表达式 : extract function names

javascript - jQuery 动态从右到左的 CSS 处理

php - 在页面中加载页面

javascript - 如何反转我的正则表达式的结果

python - Python中的"Counting"与多个正则表达式匹配

php - 序列化数据中的正则表达式

javascript - ajax 错误回调中的重新抛出错误正在创建 Uncaught Error

javascript - Angular 2 动态表单 - 实现取消功能

javascript - 是否可以仅使用公钥修改公共(public)谷歌日历中的事件数据?

javascript - 如何在 VS Code 的 Angular 工作流程中使用 Pusher-JS?