Path-to-RegExp是一个可以将诸如/user/:ame这样的路径字符串转换为正则表达式的工具。
安装pmistallpath-to-regexp--save用法cost{pathToRegexp,match,parse,compile}=require("path-to-regexp");//pathToRegexp(path,keys?,optios?)//match(path)//parse(path)//compile(path)Pathtoregexp该pathToRegexp函数将根据提供的path参数返回一个正则表达式对象。它接受以下参数:Path 字符串、字符串数组或正则表达式。Keys (可选)要填充路径中找到的键的数组。Optio (可选)sesitive strict edstartdelimiter EdsWithecodeprefixescostkeys=[];costregexp=pathToRegexp("/foo/:bar",keys);//regexp=/^\/foo(?:\/([^\/#\?]+?))[\/#\?]?$/i//keys=[{ame:'bar',prefix:'/',suffix:'',patter:'[^\\/#\\?]+?',modifier:''}]参数path参数用于定义参数和填充键。命名参数命名参数是通过在参数名称前加一个冒号来定义的( :foo)。costregexp=pathToRegexp("/:foo/:bar");//keys=[{ame:'foo',prefix:'/',...},{ame:'bar',prefix:'/',...}]regexp.exec("/test/route");//=>['/test/route','test','route',idex:0,iput:'/test/route',groups:udefied]请注意:参数名称必须使用“单词字符”( [A-Za-z0-9_])。自定义匹配参数
参数可以有一个自定义的正则表达式,它会覆盖默认匹配( [^/]+)。例如,可以匹配路径中的数字或名称:costregexpNumbers=pathToRegexp("/ico-:foo(\\d+).pg");//keys=[{ame:'foo',...}]regexpNumbers.exec("/ico-123.pg");//=>['/ico-123.pg','123']regexpNumbers.exec("/ico-abc.pg");//=>ullcostregexpWord=pathToRegexp("/(user|u)");//keys=[{ame:0,...}]regexpWord.exec("/u");//=>['/u','u']regexpWord.exec("/users");//=>ull提示:反斜杠需要在JavaScript字符串中使用另一个反斜杠进行转义。自定义前缀和后缀
可以将参数包裹起来,{}为你的细分创建自定义前缀或后缀:costregexp=pathToRegexp("/:attr1?{-:attr2}?{-:attr3}?");regexp.exec("/test");//=>['/test','test',udefied,udefied]regexp.exec("/test-test");//=>['/test','test','test',udefied]
评论