如何在 JavaScript 中替换字符串中最后一个出现的两个字符之间的字符

How do I replace a character between the last occurrence of two characters in a string in JavaScript?

本文关键字:字符 之间 两个 JavaScript 替换 字符串 最后一个      更新时间:2023-09-26

我有一个名为d[hotel][suite][0]的输入文本字段。如何将最后一个[0]替换为[1][2]等等?是否可以使用 jQuery 进行此操作,或者我必须使用正则表达式的替换函数?

到目前为止我尝试过:

the_name = $(this).attr('name');
the_name = the_name.replace(/[.*]/, '2');

没用

the_name = $(this).attr('name');
var start_pos = the_name.lastindexOf('[') + 1;
var end_pos = the_name.lastindexOf(']',start_pos);
var text_to_replace = the_name.substring(start_pos,end_pos);

不适用于 2+ 位数字。

任何帮助将不胜感激。

使用正则表达式可能更容易。

new_name = the_name.replace(/'[('d+)']$/, function(match, n) {
    return '[' + (parseInt(n, 10)+1) + ']');
});

正则表达式中的$锚点使其与末尾的括号匹配。当您使用函数作为替换时,它会使用匹配的字符串和每个捕获组作为参数调用该函数,并且它返回的任何内容都用作替换。