2015-03-13 81 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