Tengo una URL como esta:
http://localhost/PMApp/temp.htm?ProjectID=462
Lo que tengo que hacer es obtener los detalles después del ?
signo (cadena de consulta), es decir ProjectID=462
. ¿Cómo puedo obtener eso usando JavaScript?
Lo que he hecho hasta ahora es esto:
var url = window.location.toString();
url.match(?);
No sé qué hacer a continuación.
javascript
query-string
AbdulAziz
fuente
fuente
location.search
Respuestas:
Eche un vistazo al artículo de MDN sobre
window.location
.QueryString está disponible en
window.location.search
.Solución que también funciona en navegadores heredados
MDN proporciona un ejemplo (ya no está disponible en el artículo mencionado anteriormente) de cómo obtener el valor de una sola clave disponible en QueryString. Algo como esto:
En navegadores modernos
En los navegadores modernos, tiene la
searchParams
propiedad de la interfaz URL, que devuelve un objeto URLSearchParams . El objeto devuelto tiene varios métodos convenientes, incluido un método get. Entonces, el equivalente del ejemplo anterior sería:La interfaz URLSearchParams también se puede utilizar para analizar cadenas en un formato de cadena de consulta y convertirlas en un práctico objeto URLSearchParams.
Tenga en cuenta que la compatibilidad del navegador sigue siendo limitada en esta interfaz, por lo que si necesita admitir navegadores heredados, siga el primer ejemplo o use un polyfill .
fuente
encodeURIComponent/decodeURIComponent
lugar deescape/unescape
getQueryStringValue
para navegadores heredados, no funciona para?foo=bar&foo1=bar1
Si intentamos obtener valor parafoo
, regresaempty string
.Úselo
window.location.search
para obtener todo después de?
incluir?
Ejemplo:
fuente
let querystring = window.location.search.substring(1);
fuente
Esto agregará una función global para acceder a las variables queryString como un mapa.
Disfrutar.
fuente
Si usó Typecript y tiene dom en su lib de
tsconfig.json
, puede hacer:fuente
Puede utilizar esta función para dividir la cadena de? Id =
aquí está el violín
fuente
Puede usar esto para el valor de búsqueda directa a través del nombre de parámetros.
fuente
fuente
Puede utilizar la
search
propiedad delwindow.location
objeto para obtener la parte de consulta de la URL. Tenga en cuenta que incluye el signo de interrogación (?) Al principio, en caso de que eso afecte la forma en que desea analizarlo.fuente
Debería echar un vistazo a la API de URL que tiene métodos de ayuda para lograr esto como
URLSearchParams
: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParamsActualmente, esto no es compatible con todos los navegadores modernos, así que no olvide rellenarlo (Polyfill está disponible mediante https://qa.polyfill.io/ ).
fuente
ahora tienes la parte de consulta en queryString
El primer reemplazo eliminará todos los espacios en blanco, el segundo reemplazará toda la parte '&' con "," y finalmente el tercer reemplazo colocará ":" en lugar de los signos '='.
Digamos que tiene una consulta como abc = 123 & efg = 456 . Ahora, antes de analizar, su consulta se está convirtiendo en algo como {"abc": "123", "efg": "456"}. Ahora, cuando analice esto, le dará su consulta en el objeto json.
fuente
Convierta eso en una matriz y luego divídalo con '?'
fuente
fuente
Prueba este
Supongamos que su URL es http: //example.com&this=chicken&that=sandwich . Quieres obtener el valor de esto, aquello y otro.
Si desea utilizar una URL distinta a la de la ventana, puede pasar una como segundo argumento.
Referencia
fuente
Creo que es mucho más seguro confiar en el navegador que en cualquier expresión regular ingeniosa:
fuente