/test-test-test/test.aspx
你好,
我有点难以从上面的URL中检索出第一位。
试验试验试验
我尝试了这个/[\w+|-]/g
,但它也匹配了最后一个test.aspx。
请帮忙。
由于
答案 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"]