下载:
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