要从URL检索的正则表达式

时间:2015-01-29 23:48:25

标签: javascript regex

/test-test-test/test.aspx

你好,

我有点难以从上面的URL中检索出第一位。

试验试验试验

我尝试了这个/[\w+|-]/g,但它也匹配了最后一个test.aspx。

请帮忙。

由于

3 个答案:

答案 0 :(得分:2)

这样做的一种方法是使用如此处所述的Dom Parser:https://stackoverflow.com/a/13465791/970247。 然后,您可以使用例如myURL.segments; // = Array = ['test-test-test', 'test.aspx']

访问网址的细分

答案 1 :(得分:1)

你需要使用积极的先行断言。字符类中的|将匹配文字|符号。它不会像交替运营商那样行事。所以我建议你删除它。

[\w-]+(?=\/)

(?=\/)称为正向前瞻断言,断言匹配必须后跟正斜杠。在我们的情况下test-test-test后面只有一个正斜杠,所以它匹配了。 [\w-]+匹配一个或多个单词字符或连字符。 +重复前一个标记一次或多次。

示例:

> "/test-test-test/test.aspx".match(/[\w-]+(?=\/)/g)
[ 'test-test-test' ]

答案 2 :(得分:0)

  • [\w+|-]错误,应为[\w-]+。 "一系列字符,可以是单词字符或连字符",不是"单个字符,它是单词字符,加号,管道或连字符"。
  • g标志表示全局匹配,因此自然会找到所有匹配而不是第一个匹配。所以你应该删除它。

    > '/test-test-test/test.aspx'.match(/[\w-]+/)
    < ["test-test-test"]