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

 包千卿_413 发布于 2023-01-30 10:24

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

grebneke.. 6

要设置一个接受/最多五个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会执行不区分大小写的路由.要更改它,请将其放在脚本的顶部:

app.set('case sensitive routing', true);

现在,[a-z]只匹配小写字符:GET /abc但不是GET /ABC

1 个回答
  • 要设置一个接受/最多五个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会执行不区分大小写的路由.要更改它,请将其放在脚本的顶部:

    app.set('case sensitive routing', true);
    

    现在,[a-z]只匹配小写字符:GET /abc但不是GET /ABC

    2023-01-30 10:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有