用于匹配URL路径组件的JavaScript正则表达式

时间:2013-01-26 22:52:58

标签: javascript regex url jslint

我应该使用什么JavaScript正则表达式来匹配URL路径的各个组件?通过路径,我的意思是服务器上资源的路径,例如如果网址为“http://example.com/directory/resource?start=0”,则路径为“/ directory / resource”。通过路径组件,我的意思是路径的/分离部分。

假设我们有网址“http://example.com/component1/component2”。我想要的是能够将'component1'或'component2'与每个组合的正则表达式匹配,因此可以提取每个组件,例如:http:// http://example.com/( $ component-regex )/( $ component-regex )( $ component-regex 是我们需要设计的正则表达式)。在这个例子中,将有两个匹配的组:'component1'和'component2'。

请提出一个被JSLint认为是安全的正则表达式:)例如,它认为[^/]+不安全。

1 个答案:

答案 0 :(得分:0)

你不需要正则表达式:

var components = url.split(/[?#]/)[0].split("/").slice(3);

好的,你确实需要一个正则表达式来分割两个可能的字符之一,但你可以在没有任何正则表达式的情况下进行分割:

var components = url.split("#")[0].split("?")[0].split("/").slice(3);