Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 如何删除字符串中不超过并包括第三个斜杠的所有字符?_Javascript_String - Fatal编程技术网

Javascript 如何删除字符串中不超过并包括第三个斜杠的所有字符?

Javascript 如何删除字符串中不超过并包括第三个斜杠的所有字符?,javascript,string,Javascript,String,我在删除JavaScript中的所有字符(包括3个第三斜杠)时遇到问题。这是我的字符串: http://blablab/test 结果应该是: test 有人知道正确的解决办法吗 var string = 'http://blablab/test' string = string.replace(/[\s\S]*\//,'').replace(/[\s\S]*\//,'').replace(/[\s\S]*\//,'') alert(string) 这是一个正则表达式。我将在下面解释 正则

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

http://blablab/test
结果应该是:

test
有人知道正确的解决办法吗

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]

\/
表示匹配斜杠字符


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

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

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

var url = "http://blablab/test/page.php";
alert(url.split("/")[3]);
//-> "test"
或者,如果您想要在第三个斜杠之后添加所有内容,
split()
slice()
join()


您可以使用
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";

您可以使用如下正则表达式:

'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"
let str=”http://blablab/test";
让数据=新URL(str.pathname.split(“/”).pop();

控制台日志(数据)
您总是需要最后一个斜杠之后还是第三个斜杠之后的文本?请记住,如果有第四个斜杠,
pop
这将获得最后一个斜杠和
[3]之后的所有内容
将获得第三个和第四个斜杠之间的所有内容。感谢大家的快速响应此答案帮助我回答了noobish问题;)这救了我一命。谢谢。3正则表达式替换可能不是最有效的方法。我知道,我喜欢regex allot,但知道这一点,我对其他答案投了赞成票。
str = str.substr(str.indexOf("/",str.indexOf("/",str.indexOf("/")+1)+1)+1);
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";
'http://blablab/test'.match(/^(?:[^/]*\/){3}(.*)$/);
// -> ['http://blablab/test', 'test]
var input = 'http://blablab/test',
    re = /^(?:[^/]*\/){3}(.*)$/,
    match = input.match(re),
    result = match && match[1]; // With this input, result contains "test"