如何只替换字符串中的第二个数字?
实训:messages_0_items_0_data_0
所需结果:messages_0_items_1_data_0
var new_index = 1;
this_input.attr('id', this_input.attr('id').replace(/[0-9]+(?!.*[0-9])/, new_index ));上面的代码改变了最后一个数字,而不是第二个数字,就像折叠一样:
不好:messages_0_items_0_data_1
发布于 2022-03-20 18:41:01
您可以在组1中的第二个数字之前捕获,然后匹配要替换的第二个数字。
^(\D*\d+\D+)\d+看一个regex演示。
const s = `messages_0_items_0_data_0
messages[0][items][0][data][0]`;
const regex = /^(\D*\d+\D+)\d+/gm;
console.log(s.replace(regex, (m, g1) => `${g1}1`));
https://stackoverflow.com/questions/71549547
复制相似问题