получить последнюю часть этого URL - PullRequest
1 голос
/ 23 февраля 2012

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

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», который в приведенном выше примере выглядит так:

это похоже на% 2Ftopics% 2F

Не знаете, как извлечь это с помощью jQuery?

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

Ответы [ 3 ]

3 голосов
/ 23 февраля 2012

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

0 голосов
/ 23 февраля 2012

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

Вы можете использовать регулярное выражение /%2F([^%]+?)(\.html$)/.\.html$ соответствует строке перед последним появлением;([^%]+?) part соответствует самой короткой строке, которая не включает % и до .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.
0 голосов
/ 23 февраля 2012

var answer = url.substring (url.lastIndexOf ("% 2F") + 3) .replace (". Html", "")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...