网站地图    收藏   

主页 > 前端 > javascript >

javascript正则表达式替换图片地址img标签

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 我们要获取像img或href中地址都需要利用正则表达式来操作,下面我来给大家介绍我在使用js获取img中url一个过程,希望对各位有帮助。...

开始想到的解决方法是:

 

 代码如下 复制代码

content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match) {
    console.log(match);
});


输出结果是:


<img src="/images/logo.gif" alt="" width="142" height="55" />


得到的是整个img标签,但我期望得到的是src中的网址,这样只需在function(match)中返回新地址就行了。
于是,卡在这里了。。。

后来,通过Google搜索关键字“javascript replace callback”,在stackoverflow中找到了“replace callback function with matches”,才知道function(match)还有其他参数

然后,改为下面的代码,问题就解决了。

 代码如下 复制代码


content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {
    console.log(capture);
});


输出结果:


/images/logo.gif


后来百度再找又找到一个比较不错的实例

 代码如下 复制代码

<script type="text/javascript">
//思路分两步:作者(yanue).
//1,匹配出图片img标签(即匹配出所有图片),过滤其他不需要的字符
//2.从匹配出来的结果(img标签中)循环匹配出图片地址(即src属性)
var str = "this is test string <img src="http:www.111cn.net/test.jpg" width='50' > 123 and the end <img src="所有地址也能匹配.jpg" /> 33! <img src="/uploads/attached/image/20120426/20120426225658_92565.png" alt="" />"
//匹配图片(g表示匹配所有结果i表示区分大小写)
var imgReg = /<img.*?(?:>|/>)/gi;
//匹配src属性
var srcReg = /src=['"]?([^'"]*)['"]?/i;
var arr = str.match(imgReg);
alert('所有已成功匹配图片的数组:'+arr);
for (var i = 0; i < arr.length; i++) {
    var src = arr[i].match(srcReg);
    //获取图片地址
    if(src[1]){
       alert('已匹配的图片地址'+(i+1)+':'+src[1]);
    }
    //当然你也可以替换src属性
    if (src[0]) {
        var t = src[0].replace(/src/i, "href");
        //alert(t);
    }
}
</script>

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论