Path-to-PegExp的使用

下载:

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
原文地址:https://www.cnblogs.com/yangguoe/p/9968431.html