Javascript 如何删除字符串中不超过并包括第三个斜杠的所有字符?
我在删除JavaScript中的所有字符(包括3个第三斜杠)时遇到问题。这是我的字符串: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) 这是一个正则表达式。我将在下面解释 正则
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"