下載:
1 npm install path-to-regexp --save
引入:
var pathToRegexp = require('path-to-regexp') 或者 import pathToRegexp from 'path-to-regexp'
API介紹:
1.pathToRegexp() 作用:將我們輸入的url輸出為匹配規則;
1 var re = pathToRegexp('/foo/:bar') 2 console.log(re)
打印結果:
1 /^\/foo\/((?:[^\/]+?))(?:\/(?=$))?$/i
要注意兩點,一點是我們自己的 url 地址,一條是匹配規則。
2.exec():匹配url和規則是否相等
1 var pathToRegexp = require('path-to-regexp') 2 3 var re = pathToRegexp('/foo/:bar'); // 匹配規則 4 var match1 = re.exec('/test/route'); // url 路徑 5 var match2 = re.exec('/foo/route'); // url 路徑 6 7 console.log(match1); 8 console.log(match2);
打印結果:
1 null 2 [ '/foo/route', 'route', index: 0, input: '/foo/route' ]
說明:第一個路徑與匹配規則不相符,所以返回null;第二個url與匹配規則相符,返回一個數組;
3.parse() 解析url字符串中的參數部分(:id)
1 var pathToRegexp = require('path-to-regexp'); 2 var url = '/user/:id'; 3 console.log(pathToRegexp.parse(url));
解析結果:
1 [ '/user', 2 { name: 'id', 3 prefix: '/', 4 delimiter: '/', 5 optional: false, 6 repeat: false, 7 partial: false, 8 pattern: '[^\\/]+?' } ]
說明,返回一個數組,從第二個數據可以得到url地址攜帶參數的屬性名稱(item.name)
4.compile():快速填充url字符串的參數值
1 var pathToRegexp = require('path-to-regexp') 3 var url = '/user/:id/:name' 4 var data = {id: 10001, name: 'bob'} 5 console.log(pathToRegexp.compile(url)(data))
打印結果:
1 /user/10001/bob
