1

我需要的是能够从 MVC URL 中提取路由数据。我在 SO 上找到了这个解决方案,但是它不适合我的需要,因为我需要访问两个段,而不仅仅是一个:

var URL = "http://www.xzy.com/AMS/Audit/Agency/Blah";
var number = URL.match(/(\d+)$/g);

此正则表达式代码抓取最后一段"Blah"。我也怎么抢"Agency"?考虑到最后两段是单词。

4

1 回答 1

3

您可以使用\w+来匹配一个单词。为了确保单词是最后一个之前的单词,您可以使用前瞻:(?=\/\w+$)

var URL = "http://www.xzy.com/AMS/Audit/Agency/1A0A0A1A7A3A9A7";
var agency = URL.match(/(\w+)(?=\/\w+$)/g); // ["Agency"] 
var number = URL.match(/(\w+)$/g); // ["1A0A0A1A7A3A9A7"] 

您还可以使用RegExp#exec()以字符串形式获取值(而不是像上面那样的数组):

var URL = "http://www.xzy.com/AMS/Audit/Agency/1A0A0A1A7A3A9A7";
var matches = /(\w+)\/(\w+)$/g.exec(URL);
var agency = matches[1]; // Agency
var number = matches[2]; // 1A0A0A1A7A3A9A7

在此处查看演示 jsfiddle

于 2013-08-20T18:11:09.673 回答