javascript - 从 location.hash 中提取特定的参数值
问题描述
我有以下位置的哈希:
#/something/default
#/something/url1/user2
#/something/url2/url3/user3
什么是正则表达式只提取之后开始的第一个参数值,something
即我需要提取:default
,,,?url1
url2
解决方案
使用split并获取2nd
数组值:
let str1 = '#/something/default'
let str2 = '#/something/url1/user2'
let str3 = '#/something/url2/url3/user3'
let str4 = '#/something'
console.log(str1.split('/')[2])
console.log(str2.split('/')[2])
console.log(str3.split('/')[2])
// You can use a fallback like this if there is no value:
console.log(str4.split('/')[2] || 'Nothing to see here')
但是,如果您对正则表达式有信心,则可以使用:
const regexp = /^#\/.+?\/(.+?)(\/|$)/
let str1 = '#/something/default'
let str2 = '#/something/url1/user2'
let str3 = '#/something/url2/url3/user3'
let str4 = '#/something'
console.log(str1.match(regexp)[1])
console.log(str2.match(regexp)[1])
console.log(str3.match(regexp)[1])
// You can use a fallback like this if there is no value:
console.log((str4.match(regexp) || [])[1] || 'Nothing to see here')
推荐阅读
- javascript - SAP Cloud SDK JavaScript:具有位置 ID 的 onPremise 目的地没有 CSRF 令牌
- r - 光栅中的反应式表达
- angular - 如何在 NativeScript 中对表单进行单元测试?
- laravel - 如何在循环中包含连接数据
- php - 将数据从表单发送到一页并转到另一页
- php - 在 Laravel 中存储从 OAuth 接收到的数组
- c# - 调用 HttpClient 并从分页请求中获得相同的结果 - 是我还是服务?
- python - 从 3D numpy.MaskedArray 中删除切片
- animation - 颤动如何在同一页面上的小部件之间制作类似英雄的动画
- python - 为什么 2**1024 工作,而 2**(2048/2) 导致溢出错误?