小编use*_*198的帖子

Gorilla mux可选查询值

我一直在研究Go项目,其中使用gorilla/mux作为路由器.

我需要能够拥有与路由关联的查询值,但这些值应该是可选的.这意味着我想要捕获两者/articles/123/articles/123?key=456在同一个处理程序中.

为了做到这一点,我尝试使用r.Queries接受键/值对的方法:路由器.

  Path("/articles/{id:[0-9]+}").Queries("key", "{[0-9]*?}")
Run Code Online (Sandbox Code Playgroud)

但这只使value(456)可选,但不是key.因此,无论/articles/123?key=456/articles/123?key=是有效的,但不是/articles/123.

编辑:另一个要求是,在注册路由后,我想以编程方式构建它们,r.Queries即使文档特别指出它是可能的,我似乎无法弄清楚如何使用(https://github.com/gorilla/mux #registered-urls).

@jmaloney回答有效,但不允许从名称构建URL.

go mux gorilla

10
推荐指数
3
解决办法
2万
查看次数

正则表达式.20个字母和最多2个(. - _)

我正在尝试为html输入字段构建一个正则表达式模式,它只允许最多20个组合的字母和数字,这些字母和数字最多只能包含两个Dashes( - ),Underscores(_)和fullstops(.)

因此,只允许两个符号允许,允许任意数量的字母和数字,组合它们必须在4到20之间.

这种模式会是什么?

样本(不起作用)可能是这样的 [A-Za-z0-9([\._-]{0,2})]{4,20}

解:

我决定和@pascalhein @Honore Doktorr一起回答这是使用前瞻.最终的模式是^(?=[A-Za-z0-9]*([._-][A-Za-z0-9]*){0,2}$)[A-Za-z0-9._-]{4,20}$

html javascript regex

3
推荐指数
1
解决办法
73
查看次数

标签 统计

go ×1

gorilla ×1

html ×1

javascript ×1

mux ×1

regex ×1