获取 URL 的最后一段

Getting the last segment of an URL

假设这是我在输入

中写的URL/Link

https://www.instagram.com/p/CBt-W4jHZjH/

如何获取“CBt-W4jHZjH”部分?

var link = ??????

var a = link.val().trim();
var regex = new RegExp(/^(?!.*\.\.)(?!.*\.$)[^\W][\w.]{0,29}$/);
var validation = regex.test(a);

有很多方法可以做到。一种方法是寻找 / any character but / ending with / end of line.

var url = 'https://www.instagram.com/p/CBt-W4jHZjH/'
var x = new URL(url);
console.log(x.pathname.match(/\/([^\/]+)\/?$/)[1])

可以通过拆分来完成。过滤器删除由尾部 /.

引起的空字符串

var url = 'https://www.instagram.com/p/CBt-W4jHZjH/'
var x = new URL(url);
console.log(x.pathname.split('/').filter(x=>x).pop());

https://developer.mozilla.org/en-US/docs/Web/API/URL

const getLastPath = (url) => {
  url = new URL(url);
  const pathname = url.pathname; 
  const paths = pathname.split("/"); 
  return paths.pop() || paths.pop();
}


console.log(getLastPath("https://www.instagram.com/p/CBt-W4jHZjH/")); // "CBt-W4jHZjH"
console.log(getLastPath("https://www.instagram.com/p/CBt-W4jHZjH"));  // "CBt-W4jHZjH"