[英]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.