javascript biçimlendirme sprintf url

1 Cevap php

nasıl ben geçerli url örneğin alabilirsiniz javascript bir fonksiyon yazıyorum:

http://www.blahblah.com/apps/category.php?pg=1&catId=3021

ve kullanıcı seçimi tercihine bağlı olarak, gibi url başka bir parametre ekler:

http://localhost/buyamonline/apps/category.php?pg=1&catId=3021 &limit=5

ama heres yakalamak:

Her kullanıcı bir fark seçim seçer, ben gibi bir şeyler ekleyerek tutmak istemiyorum

http://localhost/buyamonline/apps/category.php?pg=1&catId=3021 &limit=5&limit=10 ve.

Ben her zaman bir sınır parametre varsa ekleyebilir veya eğer varsa değerini değiştirmek değiştirmek istiyor.

Ben bunu kullanarak sprintf'i gerçekleştirmek için çalışıyorum ama başarısız oldu.

ben şöyle yapıyordu:

var w = document.mylimit.limiter.selectedIndex;
var url_add = document.mylimit.limiter.options[w].value;
var loc = window.location.href;
window.location.href = sprintf(loc+"%s="+%s, "&limit", url_add);

1 Cevap

Updated with regular expression solution implemented in JS.

  1. Sen () yöntemi JavaScript yerine kullanarak normal bir ifade kullanabilirsiniz
  2. Sadece bir parametre ekleyerek tüm url kurmak her zaman kullanmak yerine yapabilirsiniz
  3. Sen parametresini ekleyerek önce en bölüme url ayrıştırmak

Hangisini tercih edersiniz?

# 1: Aşağıdaki hile yapmak gerekir. Ama dikkat, adresler ayrıştırma için normal ifadeler kullanarak sorunları vardır. (Ref: stackoverflow.com/questions/1842681 / ...)

<script type="text/javascript">
  var pattern = "&limit(\=[^&]*)?(?=&|$)|^foo(\=[^&]*)?(&|$)";
  var modifiers = "";
  var txt=new RegExp(pattern,modifiers);
  var str="http://localhost/buyamonline/apps/category.php?pg=1&catId=3021&limit=5";
  document.write(str+"<br/>");
  var replacement = "&limit=10";
  document.write(str.replace(txt, replacement));
</script>