使用 javascript / jquery 检查 URL 在第二个“/”之后是否有任何内容

Check if URL has anything after second "/" using javascript / jquery

所以我有一个完全变量url:

www.whatever.com/something/pagename

我需要在网站主页而不是任何其他页面上发生一些事情。有时主页在 url 中有一个 "something",有时却没有,所以我需要找出 "pagename" 是否存在,不管它是什么。

url 中的所有值各不相同,因此我不能简单地在 url..

中搜索字符串

是否可以只使用 JS / JQuery?

谢谢

拆分是解决方案:

var exampleURL = "www.whatever.com/something/pagename";
var pageName = exampleURL.split("/")[2];

console.log(pageName);
//OUT -> pagename

您可以进行正则表达式检查:

/^[^\/\s]*(\/\/)?[^\/\s]+\/[^\/\s]+[^\/]+\/[^\/\s]+$/.test('www.whatever.com/something/pagename')

演示: https://regex101.com/r/vF1bH8/1

拆分 URL 然后检查结果的长度。

var split_url = url.split('/');
if (split_url.length > 2) {
    // URL is like www.whatever.com/something/pagename...
} else {
    // URL is just www.whatever.com or www.whatever.com/something
}

另一种方法是使用正则表达式匹配带有两个斜杠的 URL:

if (url.match(/\/.*\//)) {
    // URL contains two slashes
} else {
    // URL has at most one slash
}

问题不是很清楚,按字面意思回答一下https://jsfiddle.net/jgfeymk1/

function after2ndFSlash(inpu){
var pieces = inpu.split('/');
var output = document.getElementById('output');
    if(pieces.length>2){
    output.innerHTML += 'true<br/>';
  }
  else{
    output.innerHTML += 'false<br/>';
  }
}

假设 url 字符串包含协议 ... http(s):// ... 您可以将它传递给 <a> 元素的 href 并访问路径名 属性

var url ='http://www.whatever.com/something/pagename'

var a =  document.createElement('a');
    a.href = url;

var pathParts = a.pathname.replace(/^\//,'').split('/');//["something","pagename"]
alert(pathParts[1]); //"pagename"