Path-to-RegExp 将路径字符串转换为正则表达式的工具开源项目

我要开发同款
匿名用户2021年11月10日
89阅读
开发技术TypeScript
所属分类正则表达式工具、程序开发
授权协议MIT

作品详情

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

安装npminstallpath-to-regexp--save用法const{pathToRegexp,match,parse,compile}=require("path-to-regexp");//pathToRegexp(path,keys?,options?)//match(path)//parse(path)//compile(path)Pathtoregexp该pathToRegexp函数将根据提供的path参数返回一个正则表达式对象。它接受以下参数:

Path 字符串、字符串数组或正则表达式。Keys (可选)要填充路径中找到的键的数组。Option (可选)sensitive strict endstartdelimiter EndsWithencodeprefixesconstkeys=[];constregexp=pathToRegexp("/foo/:bar",keys);//regexp=/^\/foo(?:\/([^\/#\?]+?))[\/#\?]?$/i//keys=[{name:'bar',prefix:'/',suffix:'',pattern:'[^\\/#\\?]+?',modifier:''}]参数path参数用于定义参数和填充键。

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

constregexp=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_])。

自定义匹配参数

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

constregexpNumbers=pathToRegexp("/icon-:foo(\\d+).png");//keys=[{name:'foo',...}]regexpNumbers.exec("/icon-123.png");//=>['/icon-123.png','123']regexpNumbers.exec("/icon-abc.png");//=>nullconstregexpWord=pathToRegexp("/(user|u)");//keys=[{name:0,...}]regexpWord.exec("/u");//=>['/u','u']regexpWord.exec("/users");//=>null提示:反斜杠需要在JavaScript字符串中使用另一个反斜杠进行转义。

自定义前缀和后缀

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

constregexp=pathToRegexp("/:attr1?{-:attr2}?{-:attr3}?");regexp.exec("/test");//=>['/test','test',undefined,undefined]regexp.exec("/test-test");//=>['/test','test','test',undefined]
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论