我需要的是能够从 MVC URL 中提取路由数据。我在 SO 上找到了这个解决方案,但是它不适合我的需要,因为我需要访问两个段,而不仅仅是一个:
var URL = "http://www.xzy.com/AMS/Audit/Agency/Blah";
var number = URL.match(/(\d+)$/g);
此正则表达式代码抓取最后一段"Blah"
。我也怎么抢"Agency"
?考虑到最后两段是单词。
我需要的是能够从 MVC URL 中提取路由数据。我在 SO 上找到了这个解决方案,但是它不适合我的需要,因为我需要访问两个段,而不仅仅是一个:
var URL = "http://www.xzy.com/AMS/Audit/Agency/Blah";
var number = URL.match(/(\d+)$/g);
此正则表达式代码抓取最后一段"Blah"
。我也怎么抢"Agency"
?考虑到最后两段是单词。
您可以使用\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。