2012-02-23 5 views
1

Je suis saisissant cette étrange URL à partir d'un objet dans un bouton Twitter:obtenir la dernière partie de cette 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

Je dois obtenir la dernière partie avant la « .html » qui dans l'exemple ci-dessus est: spriteslamdunk

cela semble apparaître après% 2Ftopics% 2F

ne sais pas comment extraire cela avec jQuery?

[EDIT] On dirait que je dois le faire avec Regex? N'ont pas beaucoup fait avec Regex à cet égard ??

+2

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

+0

Vous voulez faire la manipulation de chaînes de base ... pourquoi voudriez-vous impliquer jQuery? – Quentin

Répondre

0

var réponse = url.substring (url.lastIndexOf ("% 2F") + 3) .replace ("html", "")

3

Je suppose que vous pourriez avoir à utiliser regex "(\w+)\.html$"

+0

(\ w +) inclut la partie 2F juste avant la partie qu'il veut conserver (2Fspriteslamdunk). – DaveS

+0

@DaveS Je suis d'accord. Si ce sera toujours le cas, il peut toujours simplement 'substring (2)'. –

0

Vous souhaitez récupérer la chaîne avant .html et après la dernière apparition de %2F. Vous pouvez utiliser l'expression régulière /%2F([^%]+?)(\.html$)/. \.html$ correspond à la chaîne avant la dernière apparition; ([^%]+?) partie correspond à la plus courte chaîne qui ne comprend pas % et avant .html qui est ce que vous voulez récupérer; %2F exclut cette chaîne dans les correspondances.

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. 
Questions connexes