用正则表达式处理会变得很简单
首先所有的<a <img 的连接预留一个~字符作为相对路径的起点
<a href="~/img/xxx.xxx" <img src="~/img/xxx.jpg"
然后获取相应的网站根目录 再用正则替换一下就可以了
替换时尽量使用.net操作 会简单点(?<=(?:src|href|url|background)\s*=\s*["']?)~用上面的表达式Regex.Replace()方法替换掉就可以了 如果是在客户端js来替换会麻烦点

解决方案 »

  1.   

    客户端这样替换
    var tempstr = "asdfasdf<img src=\"~/img/xxx.jpg\"> asdkjfhkjsaf\n";
    var re = /(?!(?:src|href|url|background)\s*=\s*["']?)~/ig;
    alert(tempstr.replace(re,"www.163.com"));
      

  2.   

    不好意思没测试 客户端的写错了这样
    var re = /((?:src|href|url|background)\s*=\s*["']?)~/ig;
    alert(tempstr.replace(re,"$1www.163.com"));
      

  3.   

    如果把html文件发送到服务器端之后会用 很多的<img标记 而整个 document里的标记就成一个string(或者就形成了一个真正的html文件),这样 tempstr.replace()处理起来应该有难度。在客户端的话 可以采用 document.images[i].src的方式进行访问,比较方便。