Path-to-RegExp模块

本文介绍了如何使用path-to-regexp模块将路径字符串转换为正则表达式,包括基本用法、参数提取及匹配测试等,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将路径字符串(如/ user /:name)转换为正则表达式。

path-to-regexp 介绍

安装模块

npm install path-to-regexp --save

简单的使用

// 引入模块
let PathToReg = require('path-to-regexp')
// 要使用路径中找到的键填充的数组
let keys = []

let reg = PathToReg('/user/:id', keys, {end: false})
// 打印结果
console.log(reg) // /^\/user(?:\/(?=$))?(?=\/|$)/i

// end = false 不必须结束
console.log(reg.test('/user')) // true
console.log(reg.test('/user/1')) // true

// end = true 必须结束
let reg = PathToReg('/user', keys, {end: true})
console.log(reg.test('/user')) // true
console.log(reg.test('/user/1')) // false

  • keys保存的是路由参数
// 引入模块
let PathToReg = require('path-to-regexp')
// 要使用路径中找到的键填充的数组
let keys = []

let reg = PathToReg('/user/:id', keys, {end: false})
console.log(keys) 
// 打印效果如下
[ 
    {
        name: 'id',
        prefix: '/',
        delimiter: '/',
        optional: false,
        repeat: false,
        partial: false,
        pattern: '[^\\/]+?'
    }
]
  • 使用路由拿到返回值
let reg = PathToReg('/user/:id/:name', keys, {end: false})
// console.log(keys)
let result = '/user/1/hello'.match(reg)
// console.log(result) 
// [ '/user/1/hello', '1', 'hello', index: 0, input: '/user/1/hello' ]
let names = keys.map(key => key.name)
// console.log(names) // [ 'id', 'name' ]

// 对一个数组进行处理
let parmas = names.reduce((memo, name, idx) => {
    memo[name] = result[idx + 1]
    return memo
}, {})

console.log(parmas) // { id: '1', name: 'hello' }

结束

这是简单的组件使用,具体更详细的使用方法,可以走传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值