我需要的是能够从MVC URL中提取路由数据。我在SO上找到了这个解决方案,但是它不适合我的需求,因为我需要访问两个不仅仅是一个段:
var URL = "http://www.xzy.com/AMS/Audit/Agency/Blah";
var number = URL.match(/(\d+)$/g);
此正则表达式代码抓取最后一个段"Blah"
。我如何抓住"Agency"
?考虑到最后两个部分是单词。
答案 0 :(得分: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
检查demo jsfiddle here两者。