要匹配字符串"<img border=0 src='/UploadFiles/20111202155853665.jpg'>"的中路径的正则表达式怎么写啊?? var i="<img border=0 src='/UploadFiles/20111202155853665.jpg'>"; var reg=/.*src=('|")(.*)\2.*/g; i.replace(reg,function(m,p,o){
<script>var i="<img border=0 src='/UploadFiles/20111202155853665.jpg'>"; var reg=/.*src=('|")(.*)\1.*/; var m = i.match(reg); alert(m[2]); </script>
var i = "<img border=0 src='/UploadFiles/20111202155853665.jpg'>"; var reg = /(<img [\s\S]*?src=('|"))(.*)(\2[\s\S]*?>)/ig; i = i.replace(reg, "$1xxxx$4"); alert(i)
var i = "<img border=0 src='/UploadFiles/20111202155853665.jpg'>"; var reg = /<img.*?src=(['\"]?)([^'\"]+)\1.*?>/ig; i = reg.exec(i); alert(i)
怎么匹配src=‘之后的路径 啊。。JS中的正则好像^$..这样的的位置匹配符会匹配字符。。而且好像不支持正向和反向预搜索啊var i = "<img border=0 src='/UploadFiles/20111202155853665.jpg'>"; var reg = /(<img [\s\S]*?src=('|"))(.*)(\2[\s\S]*?>)/ig; i = i.replace(reg, "$1xxxx$4");这样是用捕获组,能不能只匹配路径啊??
JS的正则不支持(?=exp)但支持(?<=exp)所以要灵活变通
var str = "<img border=0 src='/UploadFiles/20111202155853665.jpg'>"; var reg = /(src=(?:\'|\"))([^\'\"\>]*)(?=\'|\")/g; str = str.replace(reg, function(){ var args = arguments; return args[1] + "myImage.jpg"; }); alert(str);
(?=‘|“)是正向预查,(?:’|”)只是把其中的内容独立出来,有点像普通运算如var result = (a + b) * c;中的括号。只是在正则中()有其特殊的意思,所有才用(?:’|”)来表示。不知道我说得够清楚没? 还有,我不建议你那样简化,容易出错。比如src的值包含特殊字符‘,”等时。
<script>var i="<img border=0 src='/UploadFiles/20111202155853665.jpg'>";
var reg=/.*src=('|")(.*)\1.*/;
var m = i.match(reg);
alert(m[2]);
</script>
var i = "<img border=0 src='/UploadFiles/20111202155853665.jpg'>";
var reg = /(<img [\s\S]*?src=('|"))(.*)(\2[\s\S]*?>)/ig;
i = i.replace(reg, "$1xxxx$4");
alert(i)
var reg = /<img.*?src=(['\"]?)([^'\"]+)\1.*?>/ig;
i = reg.exec(i);
alert(i)
var reg = /(<img [\s\S]*?src=('|"))(.*)(\2[\s\S]*?>)/ig;
i = i.replace(reg, "$1xxxx$4");这样是用捕获组,能不能只匹配路径啊??
var reg = /(src=(?:\'|\"))([^\'\"\>]*)(?=\'|\")/g;
str = str.replace(reg, function(){
var args = arguments;
return args[1] + "myImage.jpg";
});
alert(str);
alert(/a(?=b)/.exec("ab")) //a
</script>
但不明白 (?:’|”)和(?=‘|“)的用法。。是正反预搜索么??为什么不可以(?:(‘|“)),(?=\3)啊?(这样就可以用捕获组了)。还有arguments[1]是索引的位置吧,怎么。求指教!
还有,我不建议你那样简化,容易出错。比如src的值包含特殊字符‘,”等时。