假设我访问Javascript的window.pathname
并获取/you/are/here
。
是否可以构建一个正则表达式,从头开始逐步匹配路径的每个部分?换句话说,my_regex.exec(window.pathname)
会返回一个匹配数组,如下所示:
["/you", "/you/are", "/you/are/here", index: 0, input: "/you/are/here"]
答案 0 :(得分:1)
不,正则表达式不会这样做。您应匹配“/ [a-zA-Z0-9] +”(或捕获标识符的内容),然后通过循环匹配来创建字符串。
答案 1 :(得分:0)
你应该能够像这样运行它:
location.pathname.match(/\w+/g)
那应该返回一个包含所有单词的数组。当然,路径也可以由空格和下划线组成,以及在url编码的情况下为%。所以也要涵盖这些:
location.pathname.match(/[\w_\s.%]+/g)
括号创建一个字符类,其中括号之间的任何字符都被视为字符的一部分。 在课堂上我们有\ w所有常规字符(A-Za-z0-9),后跟下划线(_);任何类型的空间(\ s);一段时间 (。);最后是百分号(%)。 在字符类之后我们添加+来表示想要找到至少一个,但尽可能多。 最后的g标志强制它变为全局,它应该返回一个包含所有命中的数组。