Path-to-RegExp

将路径字符串转换为正则表达式的工具
授权协议 MIT
开发语言 TypeScript
所属分类 程序开发、 正则表达式工具
软件类型 开源软件
地区 不详
投 递 者 皮弘博
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Path-to-RegExp 是一个可以将诸如/user/:name这样的路径字符串转换为正则表达式的工具。

安装

npm install path-to-regexp --save

用法

const { pathToRegexp, match, parse, compile } = require("path-to-regexp");

// pathToRegexp(path, keys?, options?)
// match(path)
// parse(path)
// compile(path)

Path to regexp

pathToRegexp函数将根据提供的path参数返回一个正则表达式对象。它接受以下参数:

  • Path 字符串、字符串数组或正则表达式。
  • Keys (可选)要填充路径中找到的键的数组。
  • Option (可选)
    • sensitive 
    • strict 
    • end
    • start
    • delimiter 
    • EndsWith
    • encode
    • prefixes
const keys = [];
const regexp = pathToRegexp("/foo/:bar", keys);
// regexp = /^\/foo(?:\/([^\/#\?]+?))[\/#\?]?$/i
// keys = [{ name: 'bar', prefix: '/', suffix: '', pattern: '[^\\/#\\?]+?', modifier: '' }]

参数

path 参数用于定义参数和填充键。

命名参数

命名参数是通过在参数名称前加一个冒号来定义的( :foo)

const regexp = pathToRegexp("/:foo/:bar");
// keys = [{ name: 'foo', prefix: '/', ... }, { name: 'bar', prefix: '/', ... }]

regexp.exec("/test/route");
//=> [ '/test/route', 'test', 'route', index: 0, input: '/test/route', groups: undefined ]

请注意:参数名称必须使用“单词字符”( [A-Za-z0-9_])。

自定义匹配参数

参数可以有一个自定义的正则表达式,它会覆盖默认匹配 ( [^/]+)。例如,可以匹配路径中的数字或名称:

const regexpNumbers = pathToRegexp("/icon-:foo(\\d+).png");
// keys = [{ name: 'foo', ... }]

regexpNumbers.exec("/icon-123.png");
//=> ['/icon-123.png', '123']

regexpNumbers.exec("/icon-abc.png");
//=> null

const regexpWord = pathToRegexp("/(user|u)");
// keys = [{ name: 0, ... }]

regexpWord.exec("/u");
//=> ['/u', 'u']

regexpWord.exec("/users");
//=> null

提示:反斜杠需要在 JavaScript 字符串中使用另一个反斜杠进行转义。

自定义前缀和后缀

可以将参数包裹起来,{}为你的细分创建自定义前缀或后缀:

const regexp = pathToRegexp("/:attr1?{-:attr2}?{-:attr3}?");

regexp.exec("/test");
// => ['/test', 'test', undefined, undefined]

regexp.exec("/test-test");
// => ['/test', 'test', 'test', undefined]
  • 将路径字符串(如/ user /:name)转换为正则表达式。 path-to-regexp 介绍 安装模块 npm install path-to-regexp --save 简单的使用 // 引入模块 let PathToReg = require('path-to-regexp') // 要使用路径中找到的键填充的数组 let keys = [] let reg = PathToReg('

  • 概述:该工具库用来处理 url 中地址与参数,能够很方便得到我们想要的数据。 js 中有 RegExp 方法做正则表达式校验,而 path-to-regexp 可以看成是 url 字符串的正则表达式。 npm install path-to-regexp const pathToRegexp = require('path-to-regexp'); API 介绍 1. pathToRegexp(

  • TypeError: pathRegexp is not a function at new Layer (E:\webpackDemo\node_modules\_express@4.17.1@express\lib\router\layer.js:45:17) 出现这种原因呢我们追究一下源码 var pathRegexp = require('path-to-regexp'); va

  • code in here 使用path-to-regexp,我们可以在路径字符串中使用正则。如/:foo*/:bar?、/icon-:foo(\\d+).png等。 像express、vue好多框架都引用它做路径匹配,看一看,一劳永逸。 直接调用构造函数使用,一个可能含某种匹配模式的路径字符串作为它的必选参数,它返回一个正则对象。 我们的请求路径与该正则匹配,匹配成功就是接上头了。 const p

  • 下载: 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 = pathToRege

  • 当参考vue-element-admin 源码的时候 人家面包屑用的 path-to-regexp。引用的时候也是在当前页面 import pathToRegexp from ‘path-to-regexp’ 直接 这么导入 到时候直接 pathToRegexp点什么什么什么。 我发现到了我这不起作用。用pathToRegexp.compile()说我未定义。 解决办法 const pathToR

  • React-router的路由系统内部中使用的是 path-to-regexp 解析匹配路由参数。具体用法如下 const { pathToRegexp } = require("path-to-regexp") const regexp = pathToRegexp("/:foo/:bar"); // keys = [{ name: 'foo', prefix: '/', ... }, {

 相关资料
  • 问题内容: 我正在设计HTML和JavaScript中的正则表达式测试器。用户将输入一个正则表达式,一个字符串,并通过单选按钮选择要测试的函数(例如,搜索,匹配,替换等),并且当该函数以指定的参数运行时,程序将显示结果。自然地,会有额外的文本框来替换额外的参数。 我的问题是从用户那里获取字符串并将其转换为正则表达式。如果我说他们不需要在输入的正则表达式中包含,则他们不能设置标志,例如和。因此,它们

  • 在本文中,我们将深入探讨与正则表达式配合使用的各种方法。 str.match(regexp) str.match(regexp) 方法在字符串 str 中找到匹配 regexp 的字符。 它有 3 种模式: 如果 regexp 不带有 g 标记,则它以数组的形式返回第一个匹配项,其中包含分组和属性 index(匹配项的位置)、input(输入字符串,等于 str): let str = "I lo

  • 我正在开发一个使用Quickblox聊天API的聊天应用程序,目前已经完成了用户注册、身份验证和基本的点对点聊天和群聊。现在实现了视频、图像和文件的发送,但在某些部分上有所改进。 > 从sd卡中选择图像。返回string格式的图片路径,并且其未转换为InputStream。在SOF上尝试了10-15个答案。我的代码如下: 受保护的无效onActivityResult(int requestCode

  • 本文向大家介绍javascript正则表达式和字符串RegExp and String(二),包括了javascript正则表达式和字符串RegExp and String(二)的使用技巧和注意事项,需要的朋友参考一下 在上篇文章给大家介绍了javascript正则表达式和字符串RegExp and String(一),本文给大家继续分享相关内容。 前言 我认为,在学习一门编程语言的过程中,字符串

  • 本文向大家介绍javascript正则表达式和字符串RegExp and String(一),包括了javascript正则表达式和字符串RegExp and String(一)的使用技巧和注意事项,需要的朋友参考一下 前言 正则表达式是javascript非常重要和常用的功能,在jquery等大型框架中用的非常频繁,最近抽时间学习了解了相关知识,记录下来与需要的朋友分享。 思维导图 RegExp

  • 我在一个多语言网站上工作,并已选择使用每种语言的自定义URL,例如: 两者都指向城市控制员的指数方法。 在每个页面上都有一个切换语言的选项,它会在我的路由中查找以匹配控制器、视图和语言。 因此,如果我在荷兰语页面上,它会找到英文版的正确网址,即“城市”而不是“steden”。 在我开始使用更复杂的正则表达式之前,一切都很好。 我有这些正则表达式,它们将匹配我所需的URL: 在我的代码中,我可以访问

  • 我试图将js代码转换为java版本,但对正则表达式有点困惑:在js中,我有一个类似于:testString的表达式。拆分(“/(\w*\d)/g”) 我可以在java中使用什么等效语言?我试着用匹配器得到同样的结果。find()和split函数,但结果不一样。

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?