簡體   English   中英

使用正則表達式在URL中查找特定的字符串

[英]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&li‌st=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.splitString.substrArray.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM