如何通过javascript regexp将图像元素与src匹配

时间:2011-07-07 10:13:21

标签: javascript html regex

我想用javascript regexp替换img src。源html字符串可能没有规范化,我的意思是它可能是:

<img src="aa">
<img src="aa"/>
<img src="aa"></img>
< img SRC  =  " aa "></img >

如何使javascript正则表达式覆盖所有条件,并替换其src属性。

  • 我不得不使用正则表达式来匹配它。将它添加到dom是不可接受的。

4 个答案:

答案 0 :(得分:1)

使用jQuery

$('img').attr('src', '/my/new/source/value');

答案 1 :(得分:1)

可以直接访问 img 元素的 src 属性的值:

alert(someImg.src);

该值是一个字符串,因此您可以使用字符串方法对其进行操作。周围的标记是无关紧要的,表示元素的innerHTML在不同的浏览器中可能不同,所以你不应该使用它。

如果要使用正则表达式来更改值,请直接对相关的DOM属性进行操作。

你没有说明你想对这个值做什么,但也许你想用其他的替换它的某些部分,然后给出标记:

<img id="img0" src="image-red.jpg">

您可以使用以下方法将其更改为“image-blue.jpg”:

var img = document.getElementById('img0');
img.src = img.src.replace(/-red/,'-blue');

但你也可以只分配新值:

img.src = 'image-blue.jpg';

答案 2 :(得分:0)

您可以制作不区分大小写的正则表达式,如下所示:Case insensitive regex in javascript

然后你必须考虑到任何地方都有空格:

<\s*img\s+src\s+=

然后你有一场比赛。但是你的问题没有具体说明你要替换的是什么。

答案 3 :(得分:0)

为什么不使用“element.src.match”?这是一个例子:

<script>
function changeImage()
{
element=document.getElementById('myimage')
if (element.src.match("bulbon"))
  {
  element.src="pic_bulboff.gif";
  }
else
  {
  element.src="pic_bulbon.gif";
  }
}
</script>

<img id="myimage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">

<p>Click the light bulb to turn on/off the light</p>

整个示例位于:http://www.w3schools.com/js/tryit.asp?filename=tryjs_lightbulb