Я нашел следующее выражение, предназначенное для изменения идентификатора клонированного html-элемента, например, изменить contactDetails[0]
на contactDetails[1]
:
var nel = 1;
var s = $(this).attr(attribute);
s.replace(/([^\[]+)\[0\]/, "$1["+nel+"]");
$(this).attr(attribute, s);
Я не очень хорошо знаком с регулярным выражением, но пытался его интерпретировать и с помощью Regex Coach однако я все еще борюсь. Похоже, что ([^\[]+)
соответствует одному или нескольким символам, которые не являются '[
', а \[0\]/
соответствует [0]
. /
в середине я интерпретирую как «включаю оба», поэтому я не понимаю, почему автор даже включил первое выражение.
Я не понимаю, что такое $ 1 в строке замены, и если я использую функциональность замены Regex Coach, если я просто использую [0] в качестве поиска и 1 в качестве замены, я получаю правильный результат, однако, если я изменю javascript на s.replace(/\[0\]/, "["+nel+"]");
, строка s останется неизменной.
Буду признателен за любые советы относительно того, что задумал оригинальный автор, и за помощь в поиске решения, которое успешно заменит число в квадратных скобках в любом месте строки поиска.