Вы можете использовать регулярное выражение: http[s]?:\/\/www.test.com\/document\/navigate\/([\d]+)[\/]?([\d]+)?[\/]?
.
По сути это макет протокола, имени хоста / домена и части пути, которую мы знаем. Затем есть две группы захвата - идентификатор проекта и идентификатор заметки (необязательно).
Вы можете использовать его следующим образом:
const url = 'http://www.test.com/document/navigate/1/3';
const parts = url.match(/http[s]?:\/\/www.test.com\/document\/navigate\/([\d]+)[\/]?([\d]+)?/);
console.log(parts[0]); // "http://www.test.com/document/navigate/1/3" <- full match
console.log(parts[1]); // "1" <- first group
console.log(parts[2]); // "3" <- second group, which will be undefined if left off
Примечание: это не может быть надежный ответ. Я рекомендую попробовать много других возможных вариантов. Также имейте в виду, что это возвращает строки, поэтому вам может потребоваться parseInt()
или что-то еще, если вы хотите реальные числа.
Вот Regexr , показывающий вам, как это работает (это так я бездельничаю, пока не пойму правильно).