如何删除字符串中包含第3个斜杠的所有字符?

时间:2011-05-11 14:22:29

标签: javascript string

我在删除JavaScript中包含3个第三个斜杠的所有字符时遇到问题。这是我的字符串:

http://blablab/test

结果应为:

test

有人知道正确的解决方案吗?

6 个答案:

答案 0 :(得分:18)

要获取路径中的最后一项,您可以在/然后pop()上拆分字符串:

var url = "http://blablab/test";
alert(url.split("/").pop());
//-> "test"

要指定路径的单个部分,请在/上拆分并使用括号表示法访问该项目:

var url = "http://blablab/test/page.php";
alert(url.split("/")[3]);
//-> "test"

或者,如果您希望在第三次斜杠后所有 split()slice()join()

var url = "http://blablab/test/page.php";
alert(url.split("/").slice(3).join("/"));
//-> "test/page.php"

答案 1 :(得分:2)

var string = 'http://blablab/test'
string = string.replace(/[\s\S]*\//,'').replace(/[\s\S]*\//,'').replace(/[\s\S]*\//,'')
alert(string)

这是一个正则表达式。我将在下面解释

正则表达式为/[\s\S]*\//

/是正则表达式的开头

其中[\s\S]表示空格或非空格(任何内容),不要与.混淆与换行符不匹配(.[^\r\n]相同)

*表示我们匹配从零到无限数量[\s\S]

的任何地方

\/表示匹配斜杠字符

最后/是正则表达式的结尾

答案 2 :(得分:2)

var str = "http://blablab/test";
var index = 0;
for(var i = 0; i < 3; i++){
    index = str.indexOf("/",index)+1;
}
str = str.substr(index);

要使其成为单行,您可以进行以下操作:

str = str.substr(str.indexOf("/",str.indexOf("/",str.indexOf("/")+1)+1)+1);

答案 3 :(得分:0)

您可以使用split将字符串拆分为零,并使用slice返回第三个切片后的所有部分。

var str = "http://blablab/test",
    arr = str.split("/");
arr = arr.slice(3);
console.log(arr.join("/"));  // "test"

// A longer string:
var str = "http://blablab/test/test";  // "test/test";

答案 4 :(得分:0)

你可以使用像这样的正则表达式:

'http://blablab/test'.match(/^(?:[^/]*\/){3}(.*)$/);
// -> ['http://blablab/test', 'test]

字符串的match方法为您提供一个数组(整个匹配的数组,在这种情况下是整个输入,以及任何捕获组(我们想要第一个捕获组))或null。因此,对于一般用途,您需要提取数组的第1个元素,如果未找到匹配项,则返回null:

var input = 'http://blablab/test',
    re = /^(?:[^/]*\/){3}(.*)$/,
    match = input.match(re),
    result = match && match[1]; // With this input, result contains "test"

答案 5 :(得分:0)

let str = "http://blablab/test";
let data = new URL(str).pathname.split("/").pop();
console.log(data);