我有一个网址: -
http://www.example.com/keyword/category.php
或
http://www.example.com/keyword/category.php#4
我需要一个神奇的abracadabra,它只能从此网址中将页面名称设为类别。
这是我尝试过的,它提供了 category.php 。但它有两个问题。这是丑陋和漫长的,它给我带有扩展名的文件名。
var currurl = window.location.pathname;
var index = currurl.lastIndexOf("/") + 1;
var filename = currurl.substr(index);
感谢。
答案 0 :(得分:9)
将其转换为如下函数:
function getPageName(url) {
var index = url.lastIndexOf("/") + 1;
var filenameWithExtension = url.substr(index);
var filename = filenameWithExtension.split(".")[0]; // <-- added this line
return filename; // <-- added this line
}
然后当你需要使用它时:
var url = "http://www.example.com/keyword/category.php";
var myFilename = getPageName(url);
所有的“丑陋”都隐藏在一个函数中,主代码看起来很干净!
答案 1 :(得分:2)
function getPageName() {
var index = window.location.href.lastIndexOf("/") + 1,
filenameWithExtension = window.location.href.substr(index),
filename = filenameWithExtension.split(".")[0];
return filename;
}
答案 2 :(得分:1)
使用像http://www.example.com/keyword/category.php?parametro=teste
这样的查询字符串function getPageName(url) {
var index = url.lastIndexOf("/") + 1;
var filenameWithExtension = url.substr(index);
var filename = filenameWithExtension.split(".")[0];
filename = filename.split("?")[0]; // <-- added this line
return filename;
}
答案 3 :(得分:0)
注意:如果您执行.split('.')
,您将错过许多网址的基本名称。
您可以找到最后一个正斜杠,并提前搜索第一个.
,?
,&
或#
以捕获不同的网址。这可能相当于PHP的basename
function getBaseName(url) {
if(!url || (url && url.length === 0)) {
return "";
}
var index = url.lastIndexOf("/") + 1;
var filenameWithExtension = url.substr(index);
var basename = filenameWithExtension.split(/[.?&#]+/)[0];
// Handle '/mypage/' type paths
if(basename.length === 0) {
url = url.substr(0,index-1);
basename = getBaseName(url);
}
return basename ? basename : "";
}
并像这样使用
var url = "http://www.example.com/keyword/category.php#4";
var file = getBaseName(url);
<强>结果:强>
http://www.example.com/keyword/category.php#4 => "category"
http://www.example.com/keyword/category => "category"
http://www.example.com/keyword/category/ => "category"
http://www.example.com/keyword/category?ver=1 => "category"
http://www.example.com/keyword/category/?ver=1 => "category"
http://www.example.com/keyword/category#elem => "category"