Каков наилучший способ получить идентификатор из URL, написанного по-разному? - PullRequest
1 голос
/ 25 июля 2011

Я пытаюсь найти быстрый способ получить идентификатор из URL-адреса, подобного этому, в javascript или jquery?

https://plus.google.com/115025207826515678661/posts
https://plus.google.com/115025207826515678661/
https://plus.google.com/115025207826515678661
http://plus.google.com/115025207826515678661/posts
http://plus.google.com/115025207826515678661/
http://plus.google.com/115025207826515678661
plus.google.com/115025207826515678661/posts
plus.google.com/115025207826515678661/
plus.google.com/115025207826515678661

хотите просто получить 115025207826515678661 из URL

Есть ли надежный способ всегда получить идентификатор независимо от того, как он напечатан?

Ответы [ 4 ]

1 голос
/ 25 июля 2011

Вы можете использовать этот javascript, который работает на всех размещенных вами URL:

var url, patt, matches, id;

url = 'https://plus.google.com/115025207826515678661/posts';
patt = /\/(\d+)(?:\/|$)/
matches = patt.exec(url);
id = matches[1];
1 голос
/ 25 июля 2011

Используйте следующее регулярное выражение для извлечения значения:

\/([0-9]+)\/?

Проверено на всех ваших входных строках, и оно работало на каждой. Первая и единственная группа будет иметь номер, который вы ищете

0 голосов
/ 25 июля 2011

Я полагаю, что вы можете создать новую строку, а затем перебрать строку URL-адреса и скопировать любые числа в новую строку, особенно если URL-адреса никогда не содержат других числовых символов.

По сути, все, кромечисловые символы.

0 голосов
/ 25 июля 2011
var pos=url.indexOf('com').
var str1=url.substr(pos+3,21);

, если 21 не является константой, просто отметьте indexOf('/') в substr:

var pos=url.indexOf('com').
var str1=url.substr(pos+3);
pos=str1.indexOf('/');
var str2=str1.substr(0,pos);
alert(str2);

или используйте магию регулярного выражения, как было написано в другом ответе.*

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