javascript - ExpressJS - 用于匹配路径的正则表达式不起作用

标签 javascript regex node.js express

我有一个简单的正则表达式,它应该只匹配由字母 (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/

相关文章:

java - 如何使用正则表达式处理字符串

node.js - 类型错误 : Cannot read property 'channels' of null

javascript - 如何在 Javascript 中动态添加 href 参数

javascript - 获取彼此最接近的两个单词之间的字符串

javascript - 如何在 javascript 中通过列 ID 更改列可见性?

regex - PowerShell 从字符串中解析名称和版本

node.js - 网络 worker 线程 : is it OK to use "require" inside worker?

node.js - TripleDes CBC Nodejs 实现问题

javascript - 使用带有 meteor 的 jQuery 会出现错误

javascript - 需要帮助设置backbone.js : Uncaught ReferenceError: Backbone is not defined