Подтвердить что ты не робот

RegEx - Получить все символы после последнего слэш в URL

Я работаю с API Google, который возвращает идентификаторы в следующем формате, который я сохранил в виде строки. Как я могу написать регулярное выражение в javascript, чтобы обрезать строку только символам после последней косой черты в URL.

var id = 'http://www.google.com/m8/feeds/contacts/myemail%40gmail.com/base/nabb80191e23b7d9'
4b9b3361

Ответ 1

Не писать регулярное выражение! Это тривиально делать со строковыми функциями:

var final = id.substr(id.lastIndexOf('/') + 1);

Еще проще, если вы знаете, что конечная часть всегда будет 16 символов:

var final = id.substr(-16);

Ответ 2

Несколько иной подход с регулярным выражением:

var afterSlashChars = id.match(/\/([^\/]+)\/?$/)[1];

Нарушение этого регулярного выражения:

\/ match a slash
(  start of a captured group within the match
[^\/] match a non-slash character
+ match one of more of the non-slash characters
)  end of the captured group
\/? allow one optional / at the end of the string
$  match to the end of the string

Затем [1] извлекает первую захваченную группу в пределах соответствия

Рабочий фрагмент:

var id = 'http://www.google.com/m8/feeds/contacts/myemail%40gmail.com/base/nabb80191e23b7d9';

var afterSlashChars = id.match(/\/([^\/]+)\/?$/)[1];

// display result
document.write(afterSlashChars);

Ответ 3

На всякий случай кто-то встречает этот поток и ищет простое решение JS:

id.split( '/'). Поп (-1)

Ответ 4

Это должно работать:

last = id.match(/\/([^/]*)$/)[1];
//=> nabb80191e23b7d9

Ответ 5

это легко понять (?!.*/).+

позвольте мне объяснить:

во-первых, давайте сопоставить все, что имеет косую черту в конце, хорошо? , что часть, которую мы не хотим

.*/ соответствует всем, пока последняя косая черта

тогда мы создаем "Отрицательный взгляд" (?!), чтобы сказать: "Я не хочу этого, отбрось"

(?!.*) это "Отрицательный взгляд"

Теперь мы можем с радостью принять все рядом с тем, что мы не хотим, с этим .+

ВАМ МОЖЕТ БЫТЬ ВЫБИРАТЬ/ТАК, КОТОРАЯ СТАНОВИТСЯ:

(?!.*\/).+

Ответ 6

this regexp: [^\/]+$ - работает как чемпион:

var id = ".../base/nabb80191e23b7d9"

result = id.match(/[^\/]+$/)[0];

// results -> "nabb80191e23b7d9"

Ответ 7

Не знаю JS, используя другие примеры (и догадываться) -

id = id.match(/[^\/]*$/);//[0] необязательно?

Ответ 8

Почему бы не использовать заменить?

"http://google.com/aaa".replace(/(.*\/)*/,"")

дает "ааа"