首页 > 解决方案 > 从 location.hash 中提取特定的参数值

问题描述

我有以下位置的哈希:

#/something/default
#/something/url1/user2
#/something/url2/url3/user3

什么是正则表达式提取之后开始的第一个参数值,something即我需要提取:default,,,?url1url2

标签: javascriptregex

解决方案


使用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')


推荐阅读