JS正则取值问题,取所有IMG标签的src值
/<img\ssrc=[\'"](.+?)[\'"]\>+/g 剩下的就不会了 实在研究不明白了
. 展开
document.write(capture+"<br />")
});
2017-06-19 · 知道合伙人互联网行家
document.write(capture+"<br />")
});
//新建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;
}