¿Existe una forma más concisa o más estándar de capturar una cadena entre la última barra inclinada y el signo de interrogación de consulta de una URL que esta?
const recordId= window.location.href.split("item/")[1].split("?")[0] En este caso, estoy usando item/ porque mis URL siempre son:
mysite.com/item/ recordIdIwantToGrab ?foo=bar&life=42
Una expresión regular puede hacer el truco: hacer coincidir un / , seguido de caracteres de palabras, hasta un ? .
const str = 'mysite.com/item/recordIdIwantToGrab?foo=bar&life=42'; const result = str.match(/\/(\w+)\?/)[1]; console.log(result);\/ - coincide con un literal /(\w+) - grupo de captura, coincidencia de caracteres de palabras\ - coincide con un literal ?[1] - extrae el valor que coincide con el grupo de capturaPuede lograr el resultado usando lastIndexOf e indexOf
const str = `mysite.com/item/recordIdIwantToGrab?foo=bar&life=42`; const result = str.slice(str.lastIndexOf("/") + 1, str.indexOf("?")); console.log(result);Podemos lograr con la clase URL en javascript.
let url = 'http://example.com/item/recordIdIwantToGrab?foo=bar&life=42'; url = new URL(url); let result = url.pathname.split('/').at('-1'); console.log(result);