[英]Find particular string inside URL with Regex
我需要在JavaScript中使用“ regex”這樣的字符串:
http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre
我需要提取19232_102032_21111986_n
,即只是http://some.domain.com/v/v1.0-4/
和.jpg?param=fejrlwfje&list=fklwefljfre
之間的圖像名稱,並將其分配給變量。
您可以使用
\/([^\/?]+)\.jpg(?:\?|$)
模式說明 :
\\/
-斜線 ([^\\/?]+)
-組1(文件名)與/
和?
以外的1個或多個字符匹配?
\\.jpg
文字.jpg
(?:\\?|$)
-匹配任一非捕獲組?
或字符串的結尾。 var s = 'http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre'; var m = s.match(/\\/([^\\/?]+)\\.jpg(?:\\?|$)/); document.body.innerHTML = m ? m[1] : "No match!";
嘗試這個:
var s = "http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre"
var result = /\/([a-z_0-9]+)\.jpg/.exec(s)[1];
假設沒有“?” 在您要匹配的字符串中,您可以嘗試:
/\/([^?/]*)(\?|$)/.exec("http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre")[1].slice(0,-4)
這將匹配最后一個'/'之后的所有字符,這些字符不是'/'或'?' 在'?'之前 或字符串的結尾。
slice調用用於刪除“ .jpg”部分。
作為替代方案,可以使用String.split
, String.substr
和Array.lastIndexOf
函數來實現,而無需使用正則表達式:
var url = "http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre",
url_part = url.split("?")[0],
img_file = url_part.substr(url_part.lastIndexOf("/")+1).split(".")[0];
console.log(img_file); // "19232_102032_21111986_n"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.