javascript - 我可以使用正则匹配得到结果吗?
问题描述
我有一个字符串'/blog/:year/:month/:day/:slug'
,我希望匹配以下结果。
["/blog/:year/", "/blog/:year/:month/", "/blog/:year/:month/:day/"]
请
例如
const str = '/blog/2020/05/12/first'
// output: ['/blog/2020', '/blog/2020/05', '/blog/2020/05/12']
// or ['/blog/2020/', '/blog/2020/05/', '/blog/2020/05/12/']
例如
const reg = '/blog/:year/:month/:day/:slug'
const result = reg.split('/').reduce((a, b) => {
a = Array.isArray(a) ? a : []
a.push([a[a.length - 1], b].join('/'))
return a
})
console.log(result.slice(1, -1))
// output: ['/blog/:year', '/blog/:year/:month', '/blog/:year/:month/:day']
解决方案
/([A-Za-z0-9]+)\/\d{4}\/\d{2}\/\d{2}/
该正则表达式与这样的字符串一起使用
- '/1blog641/2003/12/04/:slug' => 1blog641/2003/12/04
- '/someWordWitoutSpaces123/2003/12/04/:slug' => someWordWitoutSpaces123/2003/12/04
你可以在那里训练https://regexr.com/ 或阅读备忘单 https://www.rexegg.com/regex-quickstart.html
推荐阅读
- python - Django 2.1.3 LDAP 身份验证未对后端进行身份验证
- javascript - 识别包含关键字的字符串
- spring-integration - 优雅地关闭 spring 集成流程
- java - 如何过滤在流映射期间抛出异常的元素
- svg - 如何将 svg 导入 antd -> Icon 组件
- powershell - 使用 PowerShell 锁定文件
- python - 将数据发送到python中的两个列表项
- sql - PLSQL 如果存在则选择第一个值,否则选择另一个值
- mysql - SELECT DISTINCT 在一列上考虑另一列
- java - 编写存储库类以从链接的 3 个表中获取数据