【发布时间】:2021-11-13 09:24:52
【问题描述】:
我正在尝试在 Web 应用程序中使用 vue-router 设置路由,并使用正则表达式匹配模式。我要匹配的模式是任何包含字母数字字符(和下划线)但不带斜杠的字符串。以下是一些示例(第一个斜杠只是显示域之后的字符串,例如 example.com/):
/codestack
/demo45
/i_am_long
应该不匹配的字符串是:
/data/files.xml
/share/home.html
/demo45/photos
到目前为止,我想出的唯一正则表达式是:
path: '/:Username([a-zA-Z0-9]+)'
这不太对,因为它匹配除斜线之外的所有字符。而我只想在遇到第一个正斜杠之前匹配第一组字母数字字符(包括下划线)。
如果路由包含正斜杠,例如/data/files.xml 那么这应该是一个不同的正则表达式路由匹配。因此,我也需要一个正则表达式模式来匹配上面包含斜杠的示例。理论上,它们可以包含任意数量的斜线,例如/demo45/photos/holiday/2015/bahamas.
【问题讨论】:
-
第一个是
^\w+$,第二个是^\w+/(?:\w+/)*\w+(?:\.\w+)?$?见regex101.com/r/f2NvN6/1
标签: regex express vue-router