You can use a regular expression: http[s]?:\/\/www.test.com\/document\/navigate\/([\d]+)[\/]?([\d]+)?[\/]?.
Essentially it is laying out the protocol, hostname/domain, and the part of the path that we know. Then there are two capturing groups - the project ID and the note ID (optional).
You could use it like so:
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
Note: this may not be a foolproof answer. I recommend trying out many other potential variations. Also be aware that this returns strings, so you may have to parseInt() or something if you want real numbers.
Here is a Regexr showing you how this works (this is how I mess around until I get it right).