JS正则取值问题,取所有IMG标签的src值

后台提交过来一串文本或其他类型数据,现在需要将数据中所有img标签里的地址取出来。啊啊啊,写疯了,实在研究不出来了。/<img\ssrc=[\'"](.+?)[\'"]\... 后台提交过来一串文本或其他类型数据,现在需要将数据中所有img标签里的地址取出来。 啊啊啊,写疯了,实在研究不出来了。

/<img\ssrc=[\'"](.+?)[\'"]\>+/g 剩下的就不会了 实在研究不明白了
.
展开
 我来答
a916175091
2015-03-05
知道答主
回答量:13
采纳率:0%
帮助的人:9.4万
展开全部
content.replace(/<img\ssrc=[\'"](.+?)[\'"]\>/gi, function (match, capture) {
document.write(capture+"<br />")
});
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DoramiHe
2017-06-19 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
content.replace(/<img\ssrc=[\'"](.+?)[\'"]\>/gi, function (match, capture) {
document.write(capture+"<br />")
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
养成的技术宅
2020-04-11
知道答主
回答量:39
采纳率:100%
帮助的人:6万
展开全部

//新建regexJsUtil.js文件


/**

* @Description:8、获取正则匹配目标字符串

* @param fatherStr 源完整字符串 "this is test string <img src=\"http:baidu.com/test.jpg\" width='50' > 1 and the end <img src=\"所有地址也能匹配.jpg\" /> 33! <img src=\"/uploads/attached/image/20120426/20120426225658_92565.png\" alt=\"\" /> <p>哈哈哈</p> <img src=\"static/file/tempFile/cutPic.jpg\"  ></img>";

* @param myreg 源子字符串格式(正则表达式)

(1)正则匹配img src,并获取匹配结果。(此处可匹配前三种)

myreg=/<(img|IMG).*?(>|\/>|><\/img>)/gi;

myreg=/<(img|IMG).*?src=".*?\.(jpg|gif|bmp|bnp|png)".*?(>|\/>|><\/img>)/gi;

(2)正则匹配src="文件路径",并获取匹配结果。(此处可匹配前三种)

myreg=/src=['"]?([^'"]*)['"]?/gi;

myreg=/src=['"].*?\.(jpg|gif|bmp|bnp|png)['"]?/gi;

myreg=/src=(['"]?[^'"]*['"]?)/gi;//注意,此行正则得到的matchArr[1]不建议使用,有问题;具体可自行浏览器调试查看对比。

(3)正则匹配img src,并获取匹配结果。(此处可匹配四种)

myreg=/(<img|<IMG|\[img\]).*?(>|\/>|><\/img>|\[\/img\])/gi;

myreg=/(<img|<IMG|\[img\]).*?src=".*?\.(jpg|gif|bmp|bnp|png)".*?(>|\/>|><\/img>|\[\/img\])/gi;

* @Remark:

以下4种img标签样式

<img alt="" src="static/file/tempFile/1.jpg">

<img alt="" src="static/file/tempFile/2.jpg"/> 

<img alt="" src="static/file/tempFile/3.jpg"></img>

[img]static/file/tempFile/4.jpg[/img]

* @debugger;

(2)正则匹配src="文件路径",并获取匹配结果。(此处可匹配前三种)

当正则匹配规则为 myreg=/src=(['"]?[^'"]*['"]?)/gi;

执行右侧代码,并在浏览器控制台调试 if (matchArr[0] != '') {

// "src=http:baidu.com/test.jpg" ——>转为 "http:baidu.com/test.jpg"

var srcSonStr0=matchArr[0].replace("src=", "");

// "http:baidu.com/test.jpg"

var srcSonStr1=matchArr[1];

strArr.push(srcSonStr1);

}

*

*/

function getMatchTargetStr(){

var fatherStr="this is test string <img src=\"http:baidu.com/test.jpg\" width='50' > 1 and the end <img src=\"所有地址也能匹配.jpg\" /> 33! <img src=\"/uploads/attached/image/20120426/20120426225658_92565.png\" alt=\"\" /> <p>哈哈哈</p> <img src=\"static/file/tempFile/cutPic.jpg\"  ></img>";

var myreg=/src=['"]?([^'"]*)['"]?/gi;

/**###-正则匹配方式3,遍历源完整字符串,依次正则匹配,若匹配成功则返回匹配结果-###*/

// 定义一个数组,用于存取正则匹配目标字符串

var wordArr = new Array();

wordArr=ergoticMyregFun3BackMatcherData(fatherStr,myreg);

console.log("while循环遍历,得到正则替换后的"+wordArr);

console.log(wordArr);

return wordArr;

}

/**

* @Description: 正则匹配方式3,遍历源完整字符串,依次正则匹配,若匹配成功则返回匹配结果

* @param fatherStr 源完整字符串 

* @param myreg 源子字符串格式(正则表达式)

*

*/

function ergoticMyregFun3BackMatcherData(fatherStr,myreg){

// 定义一个数组,用于存取正则匹配目标字符串

var strArr = new Array();

while(true){

var matchArr = myreg.exec(fatherStr);

if(matchArr){

for(var i=0;i<matchArr.length;i++){

console.log("for循环遍历"+matchArr[i]);

}

console.log(matchArr.index);

if (matchArr[0] != '') {

var srcSonStr=matchArr[1];

strArr.push(srcSonStr);

}

}else{

break;

}

}

return strArr;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式