Javascript中如何用正则表达式替换字符串中的图片地址

今天开发中遇到一个问题:如何替换一段HTML字符串中包含的所有img标签的src值?

开始想到的解决方法是:

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

   console.log(match);

});

输出结果是:

<img src="http://static.cnblogs.com/images/logo_small.gif" alt="" width="142" height="55" />

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

于是,卡在这里了。。。

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

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

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

   console.log(capture);

});

输出结果:

http://static.cnblogs.com/images/logo_small.gif

搞定!

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

时间: 2024-12-25 16:51:21

Javascript中如何用正则表达式替换字符串中的图片地址的相关文章

JavaScript利用正则表达式替换字符串中的内容_javascript技巧

话不多说,请看具体实现代码 //从字符串'Is this all there is'中剪去'is': var str='Is this all there is'; var subStr=new RegExp('is');//创建正则表达式对象 var result=str.replace(subStr,"");//把'is'替换为空字符串 console.log(result);//Is th all there is var subStr=new RegExp('is','i');

SQL Server中利用正则表达式替换字符串的方法

建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR

php中如何用preg_match_all匹配字符串

问题描述 php中如何用preg_match_all匹配字符串 <div class="Wrapper"> <div class="colImg"> <a href="http://store.shopping.yahoo.co.jp/matsunami/fcdm3.html"></a> </div> <div class="wrCol cf"> <

JS使用正则表达式除去字符串中重复字符的方法_javascript技巧

本文实例讲述了JS使用正则表达式除去字符串中重复字符的方法.分享给大家供大家参考,具体如下: 这里演示一个简单的JavaScript正则表达式实例,将一串含有重复字符串中的多余字符滤除掉,请运行查看效果. 具体代码如下: <html> <head> <title>利用正则表达法除去字符串中的重复字符</title> </head> <body> <script language="javascript">

js replace(a,b)之替换字符串中所有指定字符的方法_javascript技巧

如下所示: var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1); // 打印结果: obcadeacf var str2 = str.replace(/a/g, 'o'); alert(str2); //打印结果: obcodeocf, 注意: 此处replace的第一个参数为正则表达式,/g是全文匹配标识. 以上这篇js replace(a,b)之替换字符串中所有指定字符的方法就是小编分享给大家的全部内容了,

JS替换字符串中空格方法_javascript技巧

复制代码 代码如下: <input type=hidden name="space" value=" "> 通常情况下输入域当中的 替换不掉(源代码当中有 ,页面上显示为空格),如果想替换掉,可以用另外手段. 增加一个隐藏域,值为 ,然后再替换 复制代码 代码如下: var sp=document.getElementById("space").value; strData = document.all( "CommDN&q

js 替换字符串中的字符 replace()用法

如  代码如下 复制代码 var str = "大家都是男人吗,难道不是吗!"; str = str.replace('吗', '嘛'); alert(str); 上述代码中只有第一个"吗"被替换,输出结果是"大家都是男人嘛,难道不是吗!" ,嘿嘿 如果想全部替换字符串中全部符合条件的内容,用正则表达式替换是个不错的办法,如下代码可以实现全部替换  代码如下 复制代码 var str='大家都是男人吗,难道不是吗?'; str = str.rep

Dreamweaver中使用正则表达式替换href中的内容

 可能在dw中使用正则表达式替换字符串的朋友很少,下面我来给大家介绍Dreamweaver中使用正则表达式替换href中的内容吧.    在Dreamweaver中使用正则表达式替换href中的内容,就像下面这些href中的内容复杂多样的情况下,href="/html/u.html",href="/tuho/huko.html",想将它们全部替换成href="#" ,具体做法如下: 查找: href="[^"]*"

使用正则表达式寻找字符串中出现了几个[***]样式的字符串

使用正则表达式寻找字符串中出现了几个[***]样式的字符串 源码如下: - (NSUInteger)analyseRX:(NSString *)string withPatternString:(NSString *)patternString { // \\[[^\\]]+\\] 用以匹配字符串中所出现的 [*] 的个数 // <[^>]+> 用以匹配字符串中所出现的 <*> 的个数 if (string == nil) { return 0; } // 正则表达式 NSR