[英]Regular expression to retrieve from the URL
/test-test-test/test.aspx
嗨,您好,
我很难从上述URL中检索出第一位。
测试测试
我试过了这个/[\\w+|-]/g
但它也匹配了最后一个test.aspx。
请帮忙。
谢谢
一种实现方法是使用Dom解析器,如此处所述: https : //stackoverflow.com/a/13465791/970247 。 然后,您可以使用例如myURL.segments; // = Array = ['test-test-test', 'test.aspx']
访问URL的段myURL.segments; // = Array = ['test-test-test', 'test.aspx']
myURL.segments; // = Array = ['test-test-test', 'test.aspx']
您需要使用肯定的前瞻性断言。 |
字符类中的字符将匹配文字|
符号。 它不会像交替运算符那样工作。 所以我建议您删除它。
[\w-]+(?=\/)
(?=\\/)
称为正向超前断言,它断言匹配必须后面跟正斜杠。 在我们的例子中, test-test-test
后面只有一个正斜杠,所以它匹配了。 [\\w-]+
匹配一个或多个单词字符或连字符。 +
重复上一个令牌一次或多次。
例:
> "/test-test-test/test.aspx".match(/[\w-]+(?=\/)/g)
[ 'test-test-test' ]
[\\w+|-]
错误,应为[\\w-]+
。 “不是单词字符还是连字符的一系列字符”,而不是“单词字符,加号,竖线或连字符的单个字符”。 g
标志表示全局匹配,因此自然会找到所有匹配,而不仅仅是第一个。 因此,您应该删除它。
> '/test-test-test/test.aspx'.match(/[\\w-]+/) < ["test-test-test"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.