Necesito extraer el valor de un parámetro de consulta en una URL, pero el parámetro cambia en cada página.
Por ejemplo, quiero obtener la variable de color, pero siempre cambia según el ID del producto. En este caso es 'dwvar_2000440926_color' pero para otro producto será 'dwvar_545240926_color'. _color se mantiene constante, por lo que me gustaría eliminar eso:
https://www.example.com/us/2000440926.html?dwvar_2000440926_color=02
¡Gracias!
Deberías usar expresiones regulares. Según la descripción del comportamiento de la URL que describió, podría hacer algo como esto:
const url = new URL("https://www.example.com/us/2000440926.html?dwvar_2000440926_color=02"); // Now url.search contains your query parameters. // We gonna apply the regex on it to capturing the color id let matches = url.search.match(/dwvar_\d+_color=(\d+)/) // `matches` now contains the captured groups console.log(matches[1]) // log : 02Suponiendo que 1) desea hacer esto en el lado del cliente 2) el parámetro de color siempre comienza con dwvar como se muestra en su ejemplo y 3) que nunca hay más de un parámetro dwvar, puede usar el siguiente javascript:
let searchParams = new URLSearchParams(document.location.search); searchParams.forEach((param_value, param_name) => { if (param_name.indexOf('dwvar') == 0) { console.log(param_value) } })La expresión regular básica funcionaría
const myURL = new URL("https://www.example.com/us/2000440926.html?dwvar_2000440926_color=02") console.log(myURL.search.match(/_color=([^&]+)/)[1]); // more specfic console.log(myURL.search.match(/dwvar_\d+_color=([^&]+)/)[1]);