Regex для многомерного имени входной строки, чтобы получить последний номер в квадратных скобках - PullRequest
1 голос
/ 07 марта 2019

Есть ли кто-нибудь, кто поможет мне с моим регулярным выражением?

Я хочу всегда сопоставлять последнюю целочисленную квадратную скобку для каждой строки.

product[attribute][1][0][value] - In this case [0]
product[attribute][9871][56][value] - In this case [56]

Нажмите здесь для моей работы :

/\[[0-9,-]+\]/g

Цель состоит в том, чтобы увеличить входное имя для клона, product[attribute][{attribute_id}][{clone_index}][value].

1 Ответ

0 голосов
/ 07 марта 2019

Вы можете использовать

var s = "product[attribute][1][0][value]";
console.log(s.replace(
            /(.*\[)(\d+)(?=])/, function($0, $1, $2) { 
               return $1 + (Number($2)+1);
            })
)

Регулярное выражение соответствует

  • (.*\[) - Группа 1: любые 0+ символов, кроме символов разрыва строки, как можно больше, а затем [
  • (\d+) - группа 2: одна или несколько цифр
  • (?=]) - символ ] должен появиться сразу справа от текущего местоположения.

Инкремент выполняется внутри метода обратного вызова.

...