正则表达式在角色的第三个实例后获取内容

时间:2014-08-12 17:15:13

标签: javascript regex url

我正在尝试创建一个正则表达式来获取URL的完整文件路径。因为我知道输入将始终是一个简单的HTTP / HTTPS URL(例如 http://www.example.org/path/to/file.js?a12345678 ),所以我可以简单地得到第三个/之后的任何内容,包括斜杠。

我找到的最接近的答案是replace content after tab 5 and 6 (regular expression),但它是一个正则表达式,可以获得 之前的任何字符:

"http://www.example.org/path/to/file.js?a12345678".match(/^((?:[^\/]*\/){2})[^\/]*/)

返回

  

["http://www.example.org", "http://"]

我需要它来返回["/path/to/file.js?a12345678"]

我目前使用来自Regex to get first word after slash in URL的正则表达式,但这很浪费,因为我不需要特定的路径部分,只需要包含查询字符串和片段标识符的完整路径。

2 个答案:

答案 0 :(得分:2)

从索引1获取匹配的组✽ Want to Be Lazy? Think Twice.

https?:\/\/[^/]*(\/.*)

这是online demo

示例代码:

var str="http://www.example.org/path/to/file.js?a12345678";
alert(str.match(/https?:\/\/[^\/]*(\/.*)/i)[1]);

答案 1 :(得分:2)

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

https?:\/\/.*?(\/.*)

<强> Working demo

enter image description here