在前面加个alert(a)结果为null..说明没匹配到呗..
出错是正常的~~~随便输入几个字不包含链接或者留空你的程序都会出错....还有去空格简单地这么写就可以了
.replace(/^\s+|\s+$/g,"")而上面有链接没有匹配原因是你的正则有错呗~~
你用js说明可以用dom,为什么不直接取得img对象再修改src属性呢..还要用正则提取图片地址...多麻烦啊..
出错是正常的~~~随便输入几个字不包含链接或者留空你的程序都会出错....还有去空格简单地这么写就可以了
.replace(/^\s+|\s+$/g,"")而上面有链接没有匹配原因是你的正则有错呗~~
你用js说明可以用dom,为什么不直接取得img对象再修改src属性呢..还要用正则提取图片地址...多麻烦啊..
function Replace()
{
var ta=document.getElementById("ta");
var s = ta.value;
var reg = /http:\/\/www.yi13.cn/;
var tmp="http://www.yi3.cn/tu.asp?url=";
var div=document.createElement("div");
div.innerHTML=s;
var img=div.getElementsByTagName("img");
for(var i=0;i<img.length;i++){
if(!reg.test(img[i].src))img[i].src=tmp+img[i].src;
}
ta.value=div.innerHTML;
}</script> <textarea cols="50" rows="20" id="ta"> </textarea>
<br/>
<input type='button' value='提交' onclick='Replace()'/>
String.prototype.Trim= function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}function Replace()
{
var ta=document.getElementById("ta");
ta.value = ta.value.Trim().replace(/(<img[^>]*?src=(['"]?))(?!http:\/\/www\.yi13\.cn\/tu\.asp\?url=)([^\2]*?\2[^>]*?>)/img, "$1http://www.yi13.cn/tu.asp?url=$3");
}</script> 参考
<P><IMG src="http://www.yi13.cn/bt/UpFile/UpAttachment/2008-1/2008111225715.jpg"></P>
<P><IMG src="http://www.163.com/2008111225715.jpg"></P>你这个是要变还是不要变呀?还是上面的不变,下面的要变?
<script>
function Replace()
{
var ta=document.getElementById("ta");
var reg = /(<img\s[^<>]*src\s*=\s*["']?)(?!http:\/\/www.yi13.cn)([^"']+)(["']?)/ig;
var tmp="http://www.yi3.cn/tu.asp?url=";
ta.value=ta.value.replace(reg,"$1"+tmp+"$2$3");
}
</script> <textarea cols="50" rows="20" id="ta"> </textarea>
<br/>
<input type='button' value='提交' onclick='Replace()'/>
我输入:
<P><IMG src="http://www.yi13.cn/bt/UpFile/UpAttachment/2008-1/2008111225715.jpg"></P>
<P><IMG src="http://www.163.com/2008111225715.jpg"></P>提交后:正常
<P><IMG src="http://www.yi13.cn/bt/UpFile/UpAttachment/2008-1/2008111225715.jpg"></P>
<P><IMG src="http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg"></P>-----------------------------------------------------------------------------------------
但当输入
<P><IMG src="http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg"></P>
输出:
<P><IMG src="http://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg"></P>没有满足下条件:
再如果图片地址已经加上:http://www.yi3.cn/tu.asp?url=
则就不用再加上:http://www.yi3.cn/tu.asp?url=
如果表单中的图片地址已经含有这个域名:http://www.yi13.cn
则不用加上:http://www.yi3.cn/tu.asp?url=
否则加上:http://www.yi3.cn/tu.asp?url= 再如果图片地址已经加上:http://www.yi3.cn/tu.asp?url=
则就不用再加上:http://www.yi3.cn/tu.asp?url=
则不用加上:http://www.yi3.cn/tu.asp?url=
否则加上:http://www.yi3.cn/tu.asp?url= 2.再如果图片地址已经加上:http://www.yi3.cn/tu.asp?url=
则就不用再加上:http://www.yi3.cn/tu.asp?url=
2是多余的吧
如果再加多一次,图片读取速度会很慢比如
http://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg
急用啊
呵呵。
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}function Replace()
{
var ta=document.getElementById("ta");
ta.value = ta.value.Trim().replace(/(<img\s[^>]*?src=['"]?)(http:\/\/www\.(?!yi13\.cn))/img, "$1http://www.yi13.cn/tu.asp?url=$2");
}这个呢
ta.value = ta.value.Trim().replace(/(<img\s[^>]*?src=")(?!http:\/\/www\.yi13\.cn)/img, "$1http://www.yi13.cn/tu.asp?url=");
你太历害了,这么短的代码主能满足我的要求!非常感谢!
我再测试一个小时,如果没有问题就结贴!!