向路由添加约束的问题

时间:2015-11-16 20:20:30

标签: regex vb.net routing

我在网站上添加了一条路线,我想要2条约束。第一个约束是第一个参数应该是小写2个字符,第二个值是字母数字以包括连字符。我已经内置了但是当我尝试访问页面时总是出错。如果我删除第二个约束,则不会抛出错误。这是我做的约束:

      routes.MapPageRoute("landing", "{locale}/destinations/{destination}", "~/home-brand.aspx",
                        True,
                        New RouteValueDictionary(New With
                            {.locale = "en", .destination = "a-page"}),
                        New RouteValueDictionary(New With
                            {.locale = "[a-z]{2}", .destination = "[\w\-]"}))

现在,如果我像这样添加字符数限制到目的地:

    routes.MapPageRoute("landing", "{locale}/destinations/{destination}", "~/home-brand.aspx",
                        True,
                        New RouteValueDictionary(New With
                            {.locale = "en", .destination = "a-page"}),
                        New RouteValueDictionary(New With
                            {.locale = "[a-z]{2}", .destination = "[\w\-]{2,20}"}))

页面解决没有任何问题。为什么它不适用于第一个实例,而是在第二个实例中工作?

1 个答案:

答案 0 :(得分:0)

要从开始到结束检查 all 输入,请使用字符串锚点的开始/结束("零宽度断言")^和{{1} },并且还使用匹配前一个子模式的0次或更多次出现的$量词:

*

这是the regex demo

请注意,您不必在字符类的末尾转义连字符。