app.get('/:file.css', fn),我希望这个 file 是任意长的路径,目前用正则的方式是:app.get("/:file([0-9a-zA-Z]+).css", fn),很奇怪正则用 .+ 不行,\w+ 貌似也不行,奇怪。
app.get('/:file.css', fn)
file
app.get("/:file([0-9a-zA-Z]+).css", fn)
.+
\w+
给楼主标记了代码… app.get 字符串参数里不是使用正则的, 真要用正则也不能在字符串里写啊: http://expressjs.com/api.html#app.VERB
app.get
app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){ var from = req.params[0]; var to = req.params[1] || 'HEAD'; res.send('commit range ' + from + '..' + to); });
express可以我这样的写法少,实测有效的,express 4,3应该也可以的 你这个正则太长了,我就是不想用正则这么长 比如:app.get("/:file.html"),这个file可以是/folder/index.html,也可以是/foo/bar/xx.html,我只要这个扩展名匹配就可以了
re = /^\/(?:[^\/]+\/)*(.+)\.html$/ re.exec("/folder/index.html"); // ["/folder/index.html", "index"]
还是正则爽,捕获到的是filename
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
给楼主标记了代码…
app.get字符串参数里不是使用正则的, 真要用正则也不能在字符串里写啊: http://expressjs.com/api.html#app.VERBexpress可以我这样的写法少,实测有效的,express 4,3应该也可以的 你这个正则太长了,我就是不想用正则这么长 比如:app.get("/:file.html"),这个file可以是/folder/index.html,也可以是/foo/bar/xx.html,我只要这个扩展名匹配就可以了
还是正则爽,捕获到的是filename