获取此URL的最后一部分

时间:2012-02-23 16:04:06

标签: jquery regex 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做过多少工作?

3 个答案:

答案 0 :(得分:3)

我猜你可能不得不使用正则表达式"(\w+)\.html$"

答案 1 :(得分:0)

var answer = url.substring(url.lastIndexOf(“%2F”)+ 3).replace(“。html”,“”)

答案 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.