SORU
28 EKİM 2009, ÇARŞAMBA


Nasıl JavaScript sorgu dizesi bir parametre silebilir miyim?

Standart JavaScript URL bir dize içinde bir sorgu dize düzenli ifade kullanarak başka bir parametre silmek için daha iyi bir yolu var mı?

Burada benim testlerde iş gibi görünüyor buraya kadar geldim, ama sorgu dizesi ayrıştırma yeniden icat etmek istemiyorum!

function RemoveParameterFromUrl( url, parameter ) {

    if( typeof parameter == "undefined" || parameter == null || parameter == "" ) throw new Error( "parameter is required" );

    url = url.replace( new RegExp( "\\b"   parameter   "=[^&;] [&;]?", "gi" ), "" ); "$1" );

    // remove any leftover crud
    url = url.replace( /[&;]$/, "" );

    return url;
}

CEVAP
28 EKİM 2009, ÇARŞAMBA


"[&;]?"   parameter   "=[^&;] "

Bu parametre, çünkü tehlikeli görünüyor ‘’ maç olur: . bar

?a=b&foobar=c

Ayrıca eğer parameter RegExp özel olan tüm karakterler gibi içeriyorsa başarısız olurdu ‘.’. Ve tek parametre bir örneği kaldırmak istiyorsunuz yani küresel bir düzenli ifade değil.

Bunun için basit bir RegExp kullanmak istemem, parametreleri ayrıştırmak ve istemediğiniz olanları kaybederim.

function removeURLParameter(url, parameter) {
    //prefer to use l.search if you have a location/link object
    var urlparts= url.split('?');   
    if (urlparts.length>=2) {

        var prefix= encodeURIComponent(parameter) '=';
        var pars= urlparts[1].split(/[&;]/g);

        //reverse iteration as may be destructive
        for (var i= pars.length; i-- > 0;) {    
            //idiom for string.startsWith
            if (pars[i].lastIndexOf(prefix, 0) !== -1) {  
                pars.splice(i, 1);
            }
        }

        url= urlparts[0] '?' pars.join('&');
        return url;
    } else {
        return url;
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Avast

    Avast

    27 NİSAN 2006
  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014