我具有以下位置的哈希值:
#/something/default
#/something/url1/user2
#/something/url2/url3/user3
仅提取{strong>之后的第一个参数值的正则表达式是什么,即我需要提取:something
,default
,{{ 1}}?
答案 0 :(得分:2)
使用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')
但是,如果您对regexp有所了解,则可以使用以下方法:
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')
答案 1 :(得分:0)
此正则表达式可能会解决问题
(?<=#\/something\/)([^/\n]+)`