分组下就可以了
var re = /(<@@@>[\s\S]*)<\/@@@>/gi var filetext="其它文字 <@@@>文字文字 <\/@@@>其它文字";var mresult = re.exec(filetext)[1];alert(mresult)
var re = /(<@@@>[\s\S]*)<\/@@@>/gi var filetext="其它文字 <@@@>文字文字 <\/@@@>其它文字";var mresult = re.exec(filetext)[1];alert(mresult)
var filetext= "<@@@>abc<\/@@@><@@@>efg<\/@@@>"
var re = /(<@@@>[\s\S]*?)<\/@@@>/gi
alert(filetext.replace(re,"$1\n"))
虽然这样也嵌套不了...
var mresult = re.exec(filetext);
alert(mresult[1]+mresult[2])
<img width=553 height=247 src="uploadfile/1226459291656.files/image001.gif">谢谢
var re = /(<img[\s\S]*src=\")([^"]+)(\"[^>]*>)/g
alert(filetext.replace(re,"$1uploadfile/$2$3"))
var s = '<img width=553 height=247 src="1226459291656.files/image001.gif">';
var regex = new RegExp('(<img[^>]+src\\s*=\\s*")([^"]+)', 'ig');
alert(s.replace(regex, '$1upload/$2'));
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>发现了一种新的SRC捕获,利用否定预查完成</title>
</head>
<body>
<textarea id="wc" style="width:500px; height:100px;">
<img alt="var src='1'" src="'1.px'" width>
<img alt="var src='1'" src='"1.px"' width>
<img alt="var s='><img src=1>'" src=1.px>
<img alt="var src='1'" src=1.px width>
<img alt="var src='1'" src=>
<img alt="var src='1'" src= width>
<img alt="var src='1'" src="" width>
<img alt="var src='1'" src='' width>
</textarea>
<script type="text/javascript">
/*
不过效率的话,取$1$2$3明显优于取$2,但是仅高%14-%8左右
/<img\b(?:"[^"]*"|'[^']*'|[^"'>])+?src=(['"]?)([^\s>"']*(?:(?!\1).[^\s>"']*)*)\1(?:"[^"]*"|'[^']*'|[^"'>])*>/ig; //严谨模式 取$2
/<img\b(?:"[^"]*"|'[^']*'|[^"'>])+?src=(?:"([^"]*)"|'([^']*)'|([^"'\s>]*))(?:"[^"]*"|'[^']*'|[^"'>])*>/ig; //严谨模式 取$1$2$3
/<img[^>]*?src=(['"]?)([^\s>"']*(?:(?!\1).[^\s>"']*)*)\1[^>]*>/ig; //简单模式 取$2
/<img\b[^>]*?src=(?:"([^"]*)"|'([^']*)'|([^"'\s>]*))[^>]*>/ig; //简单模式 取$1$2$3
- -,在简单的话,就不能保证正确的捕获到src中的内容了吧。(3引号情况)
*/
var r = /<img\b(?:"[^"]*"|'[^']*'|[^"'>])+?src=(['"]?)([^\s>"']*(?:(?!\1).[^\s>"']*)*)\1(?:"[^"]*"|'[^']*'|[^"'>])*>/ig; //严谨模式 取$2
document.getElementById('wc').value.replace(r, function (l, $1, $2) {
alert(l + '\nsrc = |' + $2 + '|');
});
</script>
</body>
</html>[/code]
从贴下...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>发现了一种新的SRC捕获,利用否定预查完成</title>
</head>
<body>
<textarea id="wc" style="width:500px; height:100px;">
<img alt="var src='1'" src="'1.px'" width>
<img alt="var src='1'" src='"1.px"' width>
<img alt="var s='><img src=1>'" src=1.px>
<img alt="var src='1'" src=1.px width>
<img alt="var src='1'" src=>
<img alt="var src='1'" src= width>
<img alt="var src='1'" src="" width>
<img alt="var src='1'" src='' width>
</textarea>
<script type="text/javascript">
/*
不过效率的话,取$1$2$3明显优于取$2,但是仅高%14-%8左右
/<img\b(?:"[^"]*"|'[^']*'|[^"'>])+?src=(['"]?)([^\s>"']*(?:(?!\1).[^\s>"']*)*)\1(?:"[^"]*"|'[^']*'|[^"'>])*>/ig; //严谨模式 取$2
/<img\b(?:"[^"]*"|'[^']*'|[^"'>])+?src=(?:"([^"]*)"|'([^']*)'|([^"'\s>]*))(?:"[^"]*"|'[^']*'|[^"'>])*>/ig; //严谨模式 取$1$2$3
/<img[^>]*?src=(['"]?)([^\s>"']*(?:(?!\1).[^\s>"']*)*)\1[^>]*>/ig; //简单模式 取$2
/<img\b[^>]*?src=(?:"([^"]*)"|'([^']*)'|([^"'\s>]*))[^>]*>/ig; //简单模式 取$1$2$3
- -,在简单的话,就不能保证正确的捕获到src中的内容了吧。(3引号情况)
*/
var r = /<img\b(?:"[^"]*"|'[^']*'|[^"'>])+?src=(['"]?)([^\s>"']*(?:(?!\1).[^\s>"']*)*)\1(?:"[^"]*"|'[^']*'|[^"'>])*>/ig; //严谨模式 取$2
document.getElementById('wc').value.replace(r, function (l, $1, $2) {
alert(l + '\nsrc = |' + $2 + '|');
});
</script>
</body>
</html>
var re = /(<@@@>[\s\S]*?)<\/@@@>/gi
alert(filetext.replace(re,"$1\n"))