Извлечение определенного значения параметра из location.hash - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть хэш следующих мест:

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

Что такое регулярное выражение для извлечения только первое значение параметра, которое начинается после something, т.е. мне нужно извлечь:default, url1, url2?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это регулярное выражение, возможно, делает трюк

(?<=#\/something\/)([^/\n]+)`
0 голосов
/ 27 февраля 2019

Используйте 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...