Поскольку кодирует 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
«s зависит от ключа порядка итерации, поэтому на некоторых переводчиков вы можете увидеть изменения порядка свойств, но это не должно влиять на значение выход.
Этот код также может также делать странные вещи, если URI не UTF-8 кодируются и содержит не-ASCII кодовых точек.
t% 22% 3A1378328815840% 7D, это то, что мне нужно удалить из url, это отметка времени – looneytunes
Вы хотите удалить эту часть из 'url' или получить' url' в строке 'и затем отредактировать эту строку? В обоих случаях просто посмотрите https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace, чтобы они поняли. – Cristy
Мне нужно удалить эту часть из существующего url – looneytunes