2012-02-23 2 views
1

Я схватил этот странный URL из объекта в кнопке Twitter:получить последнюю часть URL

http://platform.twitter.com/widgets/tweet_button.1329950604.html#_=1330013339435&count=none&hashtags=allstar&id=twitter-widget-10&lang=en&original_referer=http%3A%2F%2Fwww.nba.com%2Fpulse%2Fallstar%2F2012%2Findex.html&related=%40nba&size=m&text=Sprite%20Slam%20Dunk%20Contest%20is%20trending%20on%20NBA%20All-Star%20Pulse%20&url=http%3A%2F%2Fwww.nba.com%2Fpulse%2Fallstar%2F2012%2Ftopics%2Fspriteslamdunk.html

мне нужно, чтобы получить последнюю часть перед «.html», который в данном примере выше: spriteslamdunk

это, кажется, появляется после% 2Ftopics% 2F

не уверен, как извлечь что с JQuery?

[РЕДАКТИРОВАТЬ] Похоже, я должен сделать это с помощью регулярного выражения? Не много делали с Regex в этом отношении?

+2

http://xkcd.com/208/ – talnicolas

+0

Вы хотите сделать основную обработку строк ... почему бы вы привлекаете JQuery? – Quentin

ответ

0

вар ответ = url.substring (url.lastIndexOf ("% 2F") + 3) .Привернуть ("HTML", "")

3

Я думаю, вы, возможно, придется использовать регулярное выражение "(\w+)\.html$"

+0

(\ w +) включает в себя часть 2F прямо перед частью, которую он хочет сохранить (2Fspriteslamdunk). – DaveS

+0

@DaveS Я согласен. Если это всегда будет так, он всегда может просто подстроить (2) '. –

0

Вы хотите получить строку до .html и после последнего появления %2F.

Вы можете использовать регулярное выражение /%2F([^%]+?)(\.html$)/. \.html$ соответствует строчке до последнего появления; ([^%]+?) часть соответствует кратчайшей строке, которая не включает % и до .html, которую вы хотите получить; %2F исключает эту строку в матчах.

var str = "http://platform.twitter.com/widgets/tweet_button.1329950604.html#_=1330013339435&count=none&hashtags=allstar&id=twitter-widget-10&lang=en&original_referer=http%3A%2F%2Fwww.nba.com%2Fpulse%2Fallstar%2F2012%2Findex.html&related=%40nba&size=m&text=Sprite%20Slam%20Dunk%20Contest%20is%20trending%20on%20NBA%20All-Star%20Pulse%20&url=http%3A%2F%2Fwww.nba.com%2Fpulse%2Fallstar%2F2012%2Ftopics%2Fspriteslamdunk.html" 

var matches = str.match(/%2F([^%]+?)(\.html$)/) 

matches 
// => ["%2Fspriteslamdunk.html", "spriteslamdunk", ".html"] 

matches[1] // What you want. 
Смежные вопросы