簡體   English   中英

如何使用JavaScript刪除URL的一部分

[英]how to remove a part of the url using javascript

如果有一個網址,我需要刪除它的時間戳部分。 我將如何在JavaScript中做到這一點。

正則表達式或字符串操作是首選?

這是網址,

"%7B%22def%22%3A%22f%3Ar%22%2C%22a%22%3A%7B%22v%22%3A%7B%22r%22%3A%22005x0000001R9JRAA0%22%7D%7D%2C%22t%22%3A1378328815840%7D"
                                                                                                      ^

t%22%3A1378328815840%7D ,這是我需要從url中刪除的內容,它是時間戳。

由於這會編碼JSON字符串

 {"def":"f:r","a":{"v":{"r":"005x0000001R9JRAA0"}},"t":1378328815840} 

你可以做

function removeTimestamp(uriStr) {
  // Decode the JSON encoded in the URI.
  var jsonObj = JSON.parse(decodeURIComponent(uriStr));
  // Remove the "t" property.
  delete jsonObj['t'];
  // Re-encode as a URI-encoded JSON string
  return encodeURIComponent(JSON.stringify(jsonObj));
}

在您的輸入字符串上,

var s = "%7B%22def%22%3A%22f%3Ar%22%2C%22a%22%3A%7B%22v%22%3A%7B%22r%22%3A%22005x0000001R9JRAA0%22%7D%7D%2C%22t%22%3A1378328815840%7D"

var sWithoutTimestamp = removeTimestamp(s);

alert(sWithoutTimestamp);

產生下面的第一行。 我在時間戳部分的位置留了一段空白,以便您可以輕松地將其與原始時間戳進行比較。

Modified: %7B%22def%22%3A%22f%3Ar%22%2C%22a%22%3A%7B%22v%22%3A%7B%22r%22%3A%22005x0000001R9JRAA0%22%7D%7D                          %7D
Original: %7B%22def%22%3A%22f%3Ar%22%2C%22a%22%3A%7B%22v%22%3A%7B%22r%22%3A%22005x0000001R9JRAA0%22%7D%7D%2C%22t%22%3A1378328815840%7D

JavaScript沒有指定鍵迭代的順序,而JSON.stringify的輸出取決於鍵迭代的順序,因此在某些解釋器中,您可能會看到屬性的重新排序,但不應影響輸出的含義。


如果URI不是UTF-8編碼的並且包含非ASCII代碼點,則此代碼也可能會做一些奇怪的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM