Hola,
tengo esta cadena:
var referer = "https://example.net:3000/page?room=room2" Quiero obtener solo lo que viene después de =room sin importar su posición, así que probé esto:
var value = referer.match(/[?&;](.+?)=([^&;]+)/g); pero obtengo esto ["?room=room2"] mientras que el resultado esperado es solo 2 . Por favor vea este violín: https://jsfiddle.net/8fduhLep/
¿Que me estoy perdiendo aqui?
Gracias.
** Actualizado **
Si desea los números que vienen después de = habitación, esto lo hace
let value = referer.match(/=room(\d+)/);rendimientos
[ '=room2', '2', index: 34, input: 'https://example.net:3000/page?room=room2', groups: undefined ]Una mejor solución es
let url = new URL(referer); let roomNumber = url.searchParams.get('room').replace(/[^\d]+/,'');Puede usar substring e indexOf :
var referer = "https://example.net:3000/page?room=room2" const res = referer.substring(referer.indexOf('=room') + 5) //add 5 to account for length of string console.log(res) Si no es el único parámetro, puede analizar la URL y obtener el valor del parámetro de la room , luego use el método anterior:
var referer = "example.net:3000/page?room=room2&someotherquery=something" var roomVal = new URL("https://example.net:3000/page?room=room2").searchParams.get('room') const res = roomVal.substring(roomVal.indexOf('=room') + 5) console.log(res)Con expresiones regulares:
var referer = "example.net:3000/page?room=room2&someotherquery=something" const regex = /room=room(\w+)/g const res = regex.exec(referer)[1] console.log(res)