Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex将获取/和之间URL中的最后一个单词/_Javascript - Fatal编程技术网

Javascript Regex将获取/和之间URL中的最后一个单词/

Javascript Regex将获取/和之间URL中的最后一个单词/,javascript,Javascript,如何获取URL中位于/和/之间的最后一个单词 例如: 这里我想从URL中获取extractMe。如果URL是一致的,为什么不使用: // Option 1 var url = "http://mywebsite.com/extractMe/test"; var extractedText = url.split("/")[3]; ​// Option 2 // If when a trailing slash is present you want to return "test",

如何获取URL中位于/和/之间的最后一个单词

例如:


这里我想从URL中获取
extractMe

如果URL是一致的,为什么不使用:

// Option 1
var url = "http://mywebsite.com/extractMe/test";
var extractedText = url.split("/")[3];

​// Option 2
// If when a trailing slash is present you want to return "test", use this code
var url = "http://mywebsite.com/extractMe/test/";
var urlAry = url.split("/");
var extractedText = urlAry[urlAry.length - 2];

​// Option 3
// If when a trailing slash is present you want to return "extractMe", use this:
var url = "http://mywebsite.com/extractMe/test/";
var urlAry = url.split("/");
var positionModifier = (url.charAt(url.length-1) == "/") ? 3 : 2;    
var extractedText = urlAry[urlAry.length - positionModifier];

这里有一个有用的工具:

这两种方法都适用于
http://mywebsite.com/extractMe/test
http://mywebsite.com/extractMe/

function processUrl(url)
{
    var tk = url.split('/');
    var n = tk.length;
    return tk[n-2];
}

编辑。正则表达式方式:

var str = "http://example.com/extractMe/test";
var match = str.match(/\/([^\/]+)\/[^\/]+$/);

if (match) {
    console.log(match[1]);
}

它最终可以使用/或不使用:)

输出:
测试

你怎么知道extractMe是最后一个、倒数第二个等等?@Crano,你怎么知道不是?请阅读我的答案<代码>如果URL是一致的…第二个示例回答了这个问题。介于两个词之间的最后一个词slashes@Cranio,放松一点…天哪。我已经更新了选项2以允许尾部斜杠。@詹姆斯,你不应该。。根据操作说明,如果后面有斜杠,则应返回
test
。因此,这与James最初的结果相同;)@费利克林·詹姆斯做了一个编辑,它和我以前的不一样。现在也一样了。
var url = "http://mywebsite.com/extractMe/test/";    
var m = url.match(/\/([^\/]+)[\/]?$/);

console.log(m[1]);