2015-03-13 80 views
0

像我有以下變量:Javascript正則表達式。獲得SRC

myvar = '<img src=".images/myimage.jpg"/>'; 

我怎樣才能得到只有「.images/myImage.jpg」這個參數中使用正則表達式中的變量?

+0

' 「([^」] *)「'搶你從指數要串1 – 2015-03-13 12:41:32

+1

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except -xhtml-self-contained-tags – Luizgrs 2015-03-13 12:41:58

+0

爲什麼使用正則表達式??你可以使用子字符串。我可以告訴你怎麼做,如果你想 – gon250 2015-03-13 12:42:13

回答

11

不需要可能有問題的正則表達式。

var src = $(myvar).attr('src'); 
+1

哦,6個投票在40秒內。我認爲更多的jQuery的子用戶標籤.. – 2015-03-13 12:43:15

+1

這是正確的答案,底下是'$'函數解析HTML字符串來構建一個DOM元素,然後檢索它的'src'屬性,這種方法的主要好處是它保證正確解析HTML。 – 2015-03-13 12:43:23

+3

只是爲了好玩,Vani lla JS解決方案:http://jsfiddle.net/466jgppd/ – 2015-03-13 12:47:12

4

Using Regular Expression is not the way to go, you should instead parse the HTML.

你可以使用jQuery,快速解析HTML,然後src屬性。 This other answer是很好的,你應該使用,如果jQuery被加載。

儘管如此,如果沒有加載jQuery,您不應該只爲此加載它。

如果你想獲得src屬性或屬性(它們不相同),你可以創建一個div並插入你的HTML字符串。然後,您將能夠遍歷DOM並獲得圖像src

var wrapper = document.createElement('div'); 
wrapper.innerHTML = '<img src=".images/myimage.jpg"/>'; 
var img = wrapper.querySelector('img'); 

console.log(img.src); 
console.log(img.getAttribute('src')); 

請注意,此代碼段假設字符串中總是會有圖像。沒有條件來防止錯誤(但很容易)。

See it in action here.

+1

。感謝您的工作並參考我的答案。 – 2015-03-13 13:42:17