🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
正则路由也就是采用正则表达式定义路由的一种方式,依靠强大的正则表达式,能够定义更灵活的路由规则。 路由表达式支持的正则定义必须以“/”开头,否则就视为规则表达式。也就是说如果采用: ~~~ '#^blog\/(\d+)$#' => 'Blog/read/id/:1' ~~~ 方式定义的正则表达式不会被支持,而会被认为是规则表达式进行解析,从而无法正确匹配。 下面是一种正确的正则路由定义: ~~~ '/^new\/(\d{4})\/(\d{2})$/' => 'News/achive?year=:1&month=:2', ~~~ > 对于正则表达式中的每个变量(即正则规则中的子模式)部分,如果需要在后面的路由地址中引用,可以采用:1、:2这样的方式,序号就是子模式的序号。 正则定义也支持函数过滤处理,例如: ~~~ '/^new\/(\d{4})\/(\d{2})$/' => 'News/achive?year=:1|format_year&month=:2', ~~~ 其中 year=:1|format_year 就表示对匹配到的变量进行format_year函数处理(假设format_year是一个用户自定义函数)。 更多的关于如何定义正则表达式就不在本文的描述范畴了。