Что делает [2], в данном .match?

Имеется вот такой код:
host_uri.path().match(///^\/([a-z]*\/[a-z].*?\/[a-z].*?)-(.*).*///)[2]


Не могу понять, что делает [2], так же имею ошибку: "Uncaught TypeError: Cannot read property '2' of null", и не могу понять где это свойство.
  • Вопрос задан
  • 123 просмотра
Решения вопроса 2
HoHsi
@HoHsi
[2] вообще не относится к регулярке. Это выбор элемента массива. Так как match в JS (да и во всех реализациях) возвращает массив, то вы просто выбираете 3-ий элемент. Т.е:
/^\/([a-z]*\/[a-z].*?\/[a-z].*?)-(.*).*/

Что у вас там лежит известно только вам.
Но сейчас вы пытаетесь взять второй 3-ий элемент от Null
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
[2] это доступ по индексу к элементу массива. А ошибка оттого, что регуляркой не найдено ни одного соответствия в тексте.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы