使用正則表達(dá)式從鏈接中獲取圖片名稱
需求介紹
后端的數(shù)據(jù)接口返回圖片鏈接列表,前端將圖片列表渲染出來,展示的時(shí)候,需要顯示圖片名稱。如以下的圖片鏈接,那么怎么比較快速的從鏈接中獲取圖片的名稱呢?
鏈接例子:https://xxxxxxxx.com/Upload/File/Customer/Dtest1202/Customer/T220326-3/1_SalesOrderAttachment_File_41XV.webp?q-sign-algorithm=xxxx
分析
一般來說,圖片的名稱都是在鏈接中最后一個(gè)/
之后,如果鏈接有攜帶參數(shù),那么圖片名稱就是在鏈接中最后一個(gè)/
之后、?
之前。
那么無論使用什么方法,都必須滿足上述條件。
鏈接中存在參數(shù)
鏈接中有參數(shù)存在, 即有?
存在:這種比較簡(jiǎn)單,因?yàn)榇嬖?code>?這種獨(dú)一無二的標(biāo)志,那么需要先匹配圖片名稱,再匹配?
所在的位置即可:
let url = 'https://xxxxxxxx.com/Upload/File/Customer/Dtest1202/Customer/T220326-3/1_SalesOrderAttachment_File_41XV.webp?q-sign-algorithm=xxxx' // 匹配帶有英文、_、.、數(shù)字的圖片名稱 const reg = /[\w.]+(?=\?)/g // 匹配帶有中文、英文、_、.、數(shù)字的圖片名稱 const regWithChinese = /[\w.\u4e00-\u9fa5]+(?=\?)/g const result = url.match(reg) // 若不存在符合的條件,result值為null,因此需要進(jìn)行判斷 const imgName = result ? result[0] : '不存在' console.log('imgName: ', imgName); // 輸出 imgName: 1_SalesOrderAttachment_File_41XV.webp
鏈接中不存在參數(shù)
鏈接中不存在參數(shù),即沒有?
存在: 這種比較麻煩,沒有?
,那么剩下的判斷條件就是圖片名稱處于最后一個(gè)/
的之后位置了,這個(gè)有三種方法:
方法一
第一種利用/
為標(biāo)識(shí),匹配所有非/
的字符串,取最后一個(gè):
const url = 'https://xxxxxxxx.com/Upload/File/Customer/Dtest1202/Customer/T220326-3/1_SalesOrderAttachment_File_41XV.webp' const reg = /[^/]+/g const imgName = url.match(reg).filter(item => item).pop() console.log('imgName: ', imgName); // 輸出 imgName: 1_SalesOrderAttachment_File_41XV.webp
方法二
第二種是先通過(?!.*/)
找出不是以/
結(jié)尾的字符串的起始位置,可以理解為最后一個(gè)/
后面的位置,然后匹配字符串:
const url = 'https://xxxxxxxx.com/Upload/File/Customer/Dtest1202/Customer/T220326-3/1_SalesOrderAttachment_File_41XV.webp' const reg = /(?!.*\/).*/g const imgName = url.match(reg).filter(item => item).pop() console.log('imgName: ', imgName); // 輸出 imgName: 1_SalesOrderAttachment_File_41XV.webp
方法三
第三種是在前兩種結(jié)合,利用/
為標(biāo)識(shí),匹配所有非/
的字符串,然后找出位置不是在/
前面的字符串:
const url = 'https://xxxxxxxx.com/Upload/File/Customer/Dtest1202/Customer/T220326-3/1_SalesOrderAttachment_File_41XV.webp' const reg = /[^/]+(?!.*\/)/g const imgName = url.match(reg).filter(item => item).pop() console.log('imgName: ', imgName); // 輸出 imgName: 1_SalesOrderAttachment_File_41XV.webp
總結(jié)
到此這篇關(guān)于使用正則表達(dá)式從鏈接中獲取圖片名稱的文章就介紹到這了,更多相關(guān)正則表達(dá)式鏈接獲取圖片名稱內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript系列文章:詳解正則表達(dá)式基本知識(shí)
正則表達(dá)式是一個(gè)精巧的利器,經(jīng)常用來在字符串中查找和替換,這篇文章主要介紹了js正則表達(dá)式基本語法,有興趣的同學(xué)可以了解一下。2016-12-12一個(gè)容易犯錯(cuò)的js手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式(推薦)
這篇文章主要介紹了 一個(gè)容易犯錯(cuò)的js手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式(推薦),需要的朋友可以參考下2017-03-03正則表達(dá)式regular expression詳述(一)
正則表達(dá)式regular expression詳述(一)...2006-06-06使用正則表達(dá)式判斷是否為手機(jī)號(hào)碼(簡(jiǎn)單且實(shí)用)
這篇文章主要介紹了使用正則表達(dá)式判斷是否為手機(jī)號(hào)碼(簡(jiǎn)單且實(shí)用)的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-11-11在VS2008中使用正則表達(dá)式進(jìn)行查找和替換
正則表達(dá)式是查找和替換文本模式的一種簡(jiǎn)潔而靈活的表示法。 在“查找和替換”窗口中執(zhí)行“快速查找”、“在文件中查找”、“快速替換”或“在文件中替換”操作時(shí),可以在該窗口的“查找內(nèi)容”和“替換為”字段中使用一組專用的正則表達(dá)式2016-05-05Web?前端常用正則校驗(yàn)規(guī)則整理(常用示例)
這篇文章主要介紹了Web前端常用正則校驗(yàn)規(guī)則,本文給大家整理一些常見的示例供大家學(xué)習(xí)參考,需要的朋友可以參考下2023-05-05正則表達(dá)式re.sub替換不完整的問題及完整解決方案
re.sub是個(gè)正則表達(dá)式方面的函數(shù),用來實(shí)現(xiàn)通過正則表達(dá)式,實(shí)現(xiàn)比普通字符串的replace更加強(qiáng)大的替換功能。這篇文章主要介紹了正則表達(dá)式re.sub替換不完整的問題及解決方案,需要的朋友可以參考下2018-08-08