Eu já vi muitos exemplos de jQuery em que o tamanho e o nome do parâmetro são desconhecidos.
Meu URL só terá uma string:
http://example.com?sent=yes
Eu só quero detectar:
- Existe
sent
? - É igual a "sim"?
jquery
url
parameters
query-string
querystringparameter
LeBlaireau
fonte
fonte
Respostas:
Melhor solução aqui .
E é assim que você pode usar esta função assumindo que a URL é
http://dummy.com/?technology=jquery&blog=jquerybyexample
,.fonte
false
ounull
de pesquisa vazia&
ou de=
parâmetro.Solução a partir de 2020
Temos: http://example.com?sent=yes
Será que enviou exist ?
É igual a "sim"?
e então apenas compare.
fonte
if ('URLSearchParams' in window) { // Browser supports URLSearchParams}
Veja aquiFragmento de código jQuery para obter as variáveis dinâmicas armazenadas no URL como parâmetros e armazená-las como variáveis JavaScript prontas para uso com seus scripts:
example.com?param1=name¶m2=&id=6
exemplo de parâmetros com espaços
fonte
return results[1] || 0;
, deve ser #return decodeURI(results[1]) || 0;
|| 0
peça, já que já existe uma verificação do resultado, ela nem sempre retorna a matriz de correspondência?Eu sempre coloco isso como uma linha. Agora params tem os vars:
multi-alinhado:
Como uma função
que você pode usar como:
ou
fonte
replace(/[?&;]+([^=]+)=([^&;]*)/gi
a reconectar ";" caractere como separador também.var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;});
Isso é útil para coisas como AJAX, em que o hash na janela é atualizado com solicitações de ajax, mas também um usuário para ir a um uri contendo um hash.Ainda outra função alternativa ...
fonte
param('t') == param('sent') == 'yes'
no exemplo do OP. Aqui está uma correçãoreturn (location.search.split(new RegExp('[?&]' + name + '='))[1] || '').split('&')[0]
:; Observe também que você não pode dizer se o parâmetro existe porque você recebe uma string vazia para os parâmetros ausentes.return (location.search.split('?' + name + '=')[1] || location.search.split('&' + name + '=')[1] || '').split('&')[0];
Pode ser tarde demais. Mas esse método é muito fácil e simples
UPDATE
Requer o plugin url: plugins.jquery.com/url
Obrigado -Ripounet
fonte
Ou você pode usar essa pequena função, porque por que soluções complicadas?
que fica ainda melhor quando simplificado e on-line:
tl; dr solução de uma linha
Mas e se você tiver caracteres codificados ou chaves com vários valores ?
É melhor você ver esta resposta: Como posso obter valores de string de consulta em JavaScript?
Sneak peak
fonte
Usando
URLSearchParams
:Tenha cuidado com a compatibilidade (Principalmente, tudo bem, mas o IE e o Edge podem ser histórias diferentes, verifique isso para referência compatível: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams )
fonte
Este é simples e funcionou para mim
portanto, se seu URL for http://www.yoursite.com?city=4
tente isso
fonte
Talvez você queira dar uma olhada no Dentist JS ? (aviso: eu escrevi o código)
código:
Com o Dentist JS, você pode basicamente chamar a função extract () em todas as strings (por exemplo, document.URL.extract ()) e recuperar um HashMap de todos os parâmetros encontrados. Também é personalizável para lidar com delimitadores e tudo.
Versão reduzida <1kb
fonte
Espero que isso ajude.
fonte
fonte
Experimente esta demonstração de trabalho http://jsfiddle.net/xy7cX/
API:
inArray
: http://api.jquery.com/jQuery.inArray/Isso deve ajudar
:)
código
fonte
Existe esta ótima biblioteca: https://github.com/allmarkedup/purl
o que permite que você faça simplesmente
O exemplo está assumindo que você está usando jQuery. Você também pode usá-lo como javascript simples, a sintaxe seria um pouco diferente.
fonte
Este pode ser um exagero, mas há uma biblioteca bastante popular já está disponível para URIs análise, chamados URI.js .
Exemplo
fonte
Tão simples que você pode usar qualquer URL e obter valor
Exemplo de uso
Nota: Se um parâmetro estiver presente várias vezes (? Primeiro = valor1 e segundo = valor2), você obterá o primeiro valor (valor1) e o segundo valor como (valor2).
fonte
Isso lhe dará um bom objeto para trabalhar
E depois;
fonte
Isso se baseia na resposta da Gazoris , mas o URL decodifica os parâmetros para que possam ser usados quando contiverem dados que não sejam números e letras:
fonte
Há outro exemplo com o uso da biblioteca URI.js.
O exemplo responde às perguntas exatamente como solicitado.
fonte
Melhor solução aqui .
Com a função acima, você pode obter valores de parâmetros individuais:
fonte
Versão do café da resposta de Sameer
fonte
Uma ligeira melhoria na resposta de Sameer, armazena os parâmetros em cache no fechamento para evitar a análise e o loop de todos os parâmetros sempre que chamar
fonte
Eu uso isso e funciona. http://codesheet.org/codesheet/NF246Tzs
fonte
Com o vanilla JavaScript, você pode facilmente pegar os parâmetros (location.search), obter a substring (sem o?) E transformá-lo em uma matriz, dividindo-o por '&'.
À medida que você percorre urlParams, é possível dividir a sequência novamente com '=' e adicioná-la ao objeto 'params' como objeto [elmement [0]] = elemento [1]. Super simples e fácil de acessar.
http://www.website.com/?error=userError&type=handwritten
fonte
E se houver & no parâmetro do URL como filename = "p & g.html" & uid = 66
Nesse caso, a 1ª função não funcionará corretamente. Então eu modifiquei o código
fonte
É certo que estou adicionando minha resposta a uma pergunta com excesso de resposta, mas isso tem as vantagens de:
- Não depende de nenhuma biblioteca externa, incluindo jQuery
- Não poluir o espaço de nomes da função global, estendendo 'String'
- Não criar dados globais e processar desnecessariamente após a correspondência encontrada
- Tratamento de problemas de codificação e aceitação (assumindo) de nome de parâmetro não codificado
- Evitando
for
loops explícitosEntão você o usaria como:
fonte
Se você deseja encontrar um parâmetro específico de um URL específico:
fonte
Outra solução que usa jQuery e JSON, para que você possa acessar os valores dos parâmetros através de um objeto.
Supondo que seu URL seja
http://example.com/?search=hello+world&language=en&page=3
Depois disso, é apenas uma questão de usar parâmetros como este:
para retornar
O uso mais útil disso é executá-lo no carregamento da página e usar uma variável global para usar os parâmetros em qualquer lugar que você precisar.
Se o seu parâmetro contiver valores numéricos, basta analisar o valor.
Se não houver parâmetros,
param
será apenas um objeto vazio.fonte
fonte
usa isto
fonte