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

时间:2016-03-04 16:36:02

标签: javascript jquery url webpage

所以我有一个完全可变的网址:

www.whatever.com/something/pagename

我需要在网站的主页上发生某些事情,而不是在任何其他页面上发生。有时主页在网址中有“某些内容”,有时却没有,所以我需要查看“页面名称”是否存在,无论它是什么。

网址中的所有值都有所不同,所以我不能简单地在网址中搜索字符串..

仅使用JS / JQuery可以做到这一点吗?

由于

5 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

Split是解决方案:

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

问题不是很清楚,而是按字面意思回答标题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/>';
  }
}

答案 4 :(得分:0)

假设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"