У меня есть URL изображения "https://wallpaper.wiki/wp-content/uploads/2017/04/wallpaper.wiki-Free-Images-Background-PC-PIC-WPD006550.jpg"
"https://wallpaper.wiki/wp-content/uploads/2017/04/wallpaper.wiki-Free-Images-Background-PC-PIC-WPD006550.jpg"
Я хочу удалить базовый путь (https://wallpaper.wiki/wp-content/uploads/2017/04/) и расширение файла (.jpg), а должно быть возвращено wallpaper.wiki-Free-Images-Background-PC-PIC-WPD006550
https://wallpaper.wiki/wp-content/uploads/2017/04/
.jpg
wallpaper.wiki-Free-Images-Background-PC-PIC-WPD006550
Вы также можете использовать эту функцию, чтобы получить имя без регулярных выражений
function getname(url){ url = url.split("?")[0]; url= url.substring(url.lastIndexOf("/")+1) return url.substring(0,url.lastIndexOf(".")) } var fullurl = "https://wallpaper.wiki/wp-content/uploads/2017/04/wallpaper.wiki-Free-Images-Background-PC-PIC-WPD006550.jpg"; alert( getname(fullurl) )
Вы можете использовать это регулярное выражение и захватить содержимое группы 1, которое выберет только имя файла в URL-адресе, исключая расширение,
https?:\/\/.*\/([\w.-]+)\.\w+
Объяснение:
https?:\/\/.*/ --> captures the url from start and stops at last occurrence of / ([\w.-]+) --> captures the filename \.\w+ --> captures the dot and extension
Демонстрация, https://regex101.com/r/eralSI/1
Вот код JavaScript для достижения того же,
var myString = "https://wallpaper.wiki/wp-content/uploads/2017/04/wallpaper.wiki-Free-Images-Background-PC-PIC-WPD006550.jpg"; var myRegexp = /https?:\/\/.*\/([\w.-]+)\.\w+/g; var match = myRegexp.exec(myString); console.log(match[1]);