我有一个简单的正则表达式,它应该只匹配由字母 (0-5) 组成的单词,但它似乎不起作用。正则表达式应该如何在 ExpressJS 中使用?我尝试验证的 URL 可能类似于 something.com/abcd
var express = require("express"),
app = express();
app.get("/:id(^[a-z]{0,5}$)", function(req, res) {
res.send("The right path!");
});
app.listen(8000);
最佳答案
要设置接受 /
后跟最多五个 ascii 字符的 URL,您可以这样做:
var express = require("express"),
app = express();
app.get("/[a-z]{0,5}$", function(req, res){
res.send("Right path!");
});
app.listen(8000);
结果:
GET http://localhost:8000/
Right path!
GET http://localhost:8000/abcde
Right path!
GET http://localhost:8000/abcdef
Cannot GET /abcdef
注意:Express 做case insensitive routing by default.要更改它,请将其放在脚本的顶部:
app.set('case sensitive routing', true);
现在,[a-z]
将只匹配小写字符:GET/abc
而不是 GET/ABC
关于javascript - ExpressJS - 用于匹配路径的正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21482364/