2013-09-04 2 views
0

Если есть URL-адрес, где мне нужно удалить его временную метку. Как сделать это в javascript.Как удалить часть URL-адреса с помощью javascript

Регулярные или строковые операции, которые предпочтительнее?

Вот URL,

"%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, это метка времени.

+0

t% 22% 3A1378328815840% 7D, это то, что мне нужно удалить из url, это отметка времени – looneytunes

+0

Вы хотите удалить эту часть из 'url' или получить' url' в строке 'и затем отредактировать эту строку? В обоих случаях просто посмотрите https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace, чтобы они поняли. – Cristy

+0

Мне нужно удалить эту часть из существующего url – looneytunes

ответ

3

Поскольку кодирует 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 кодовых точек.

Смежные вопросы