2013-02-22 4 views
0

Je dois extraire une sous-chaîne spécifiée, puis les nombres qui suivent cette sous-chaîne. Par exemple, je dois extraire cid=159 de la chaîne: http://website.com/ProductCats.asp?cid=159&otherjunk=1. Même si cid= reste actif, les chiffres qui suivent peuvent changer et peuvent être compris entre 1 et 4 chiffres.jQuery extrait la sous-chaîne spécifiée et les nombres suivants de la chaîne

Y a-t-il un moyen d'extraire ce modèle?

Merci à l'avance.

+0

pouvez-vous utiliser un plugin? – lolol

+0

Oui, d'abord le diviser sur cid =, puis diviser la seconde moitié de cela par & et obtenir la première moitié. –

Répondre

2

Cela pourrait aider. Je ne me souviens pas où je l'ai trouvé, mais c'est une fonction qui obtient l'URL et assigne les variables à un tableau qui peut être référencé. Aussi c'est du javascript pur.

function getUrlVars() { 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++)  { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

Alors vous feriez

var myURLArray = getUrlVars(); 
var cid = myURLArray['cid']; 

Il m'a beaucoup aidé. Encore une fois je ne l'ai pas fait, mais c'est utile.

0

En utilisant juste javascript pour n'importe quelle URL, pas seulement l'URL de la fenêtre actuelle si nécessaire. J'ai emprunté la fonction getLocation à partir d'une question SO précédente liée à ceci.

var getLocation = function(href) { 
    var l = document.createElement("a"); 
    l.href = href; 
    return l; 
}; 
var getUriObject = function(href){ 
    var l = getLocation(href); 
    var queryArray=l.search.substr(1).split('&'); 
    var uriObject={}; 
    for(var i=0;i<queryArray.length;i++){ 
     uriObject[queryArray[i].split('=')[0]]=queryArray[i].split('=')[1]; 
    } 
    return uriObject; 
} 
alert(getUriObject("http://website.com/ProductCats.asp?cid=159&otherjunk=1").cid); 
Questions connexes