Имеются строки вида:
var string1 = "http://fs2.www.anyone.com/some/153983289/123456789.png%4E800";
var string2 = "https://img2.someone.com/any/1920x1080/d/ad/my-super-image.jpg?id=file.png";
var string3 = "http://supersite.com/gipersuperimage";
Необходимо получить расширение изображения (только буквы, чисел быть не должно, по идее).
Естественно,
string.split(".").pop()
не подходит (как и подобные варианты). Немного подумал и решил сделать выбор в пользу регулярки.
var regexp = /.*\.(\w+)[^?/]+$/;
string1.replace(regexp, "$1"); // Ожидание: png | Реальность: png
string2.replace(regexp, "$1"); // Ожидание: jpg | Реальность: png
string3.replace(regexp, "$1"); // Ожидание: | Реальность: http://www.supersite.com/gipersuperimage
Как, все же, получить расширение из строк такого вида правильно? Спасибо.