Javascript正则表达式是否替换方括号中的最后一个数字?

Javascript正则表达式是否替换方括号中的最后一个数字?,javascript,regex,Javascript,Regex,我已经找了好几个小时了,现在我已经以一种非常丑陋的方式结束了,但仍然在工作。我想找到一个很好的方法来做到这一点 我有一根这样的线: wanna[0].some[0].javascript 我想替换方括号中的最后一个数字: wanna[0].some[1].javascript 我以一种丑陋的方式结束了这一切: myString.replace(/\d].javascript$/, "1].javascript") 哪个正则表达式应该是与之匹配的最佳正则表达式 myString.replac

我已经找了好几个小时了,现在我已经以一种非常丑陋的方式结束了,但仍然在工作。我想找到一个很好的方法来做到这一点

我有一根这样的线:

wanna[0].some[0].javascript
我想替换方括号中的最后一个数字:

wanna[0].some[1].javascript
我以一种丑陋的方式结束了这一切:

myString.replace(/\d].javascript$/, "1].javascript")
哪个正则表达式应该是与之匹配的最佳正则表达式

myString.replace(/\d/, 1) // this should be for the first digit
myString.replace(/\d/g, 1) // this for every digit

我已经读过关于负前瞻性的文章,但我仍然不知道JS是否支持这一点。

只需使用负前瞻性来确定在匹配的括号之后没有更多的括号:

var text = 'wanna[0].some[0].javascript';

text = text.replace(/\[\d](?!.*\[)/, '[1]');

这里有一个问题:

只需使用一个负向前看,以确定在匹配的括号之后没有更多的括号:

var text = 'wanna[0].some[0].javascript';

text = text.replace(/\[\d](?!.*\[)/, '[1]');

问题是:

不知道为什么需要向前看。你给出的答案应该有用。正如Crockford所说的JavaScript中的负面外观:好的部分:“这不是好的部分。”

如果你提供的线路不起作用,我想这是因为你没有逃过方括号。应该是:

myString.replace(/\d\].javascript$/, "1].javascript");
你也可以做一些捕捉,使它更容易对眼睛


我同意对你问题的评论,认为这似乎是一个需要解决的奇怪问题。为什么要更改字符串中的数字?在方括号中加一个数字变量,然后可以增加,这样看起来会更好。

不确定为什么需要向前看。你给出的答案应该有用。正如Crockford所说的JavaScript中的负面外观:好的部分:“这不是好的部分。”

如果你提供的线路不起作用,我想这是因为你没有逃过方括号。应该是:

myString.replace(/\d\].javascript$/, "1].javascript");
你也可以做一些捕捉,使它更容易对眼睛


我同意对你问题的评论,认为这似乎是一个需要解决的奇怪问题。为什么要更改字符串中的数字?在方括号中加一个数字变量会更好,然后可以递增。

这似乎是一个需要解决的奇怪问题。你到底想做什么?请看:我已经用更多的信息评论了另一个答案。我明天可能要修改我的问题这似乎是一个需要解决的奇怪问题。你到底想做什么?请看:我已经用更多的信息评论了另一个答案。我明天可能要修改我的问题我正在创建一些文本区域,我正在克隆第一个文本区域,并递增名称。这是因为我使用AutoPopulationGlist在服务器端创建它们我正在创建一些文本区域,我正在克隆第一个文本区域,并递增名称。这是因为我使用AutoPopulationGlist在服务器端创建它们