请大家帮帮忙哦,最近碰到个相当棘手的问题,是关于字符串转换的。
我有这样的一个字符串:<P><IMG src="http://webdesign.chinaitlab.com/UploadFiles_8014/200708/001.gif"><IMG src="http://webdesign.chinaitlab.com/UploadFiles_8014/200708/002.gif">你好, <IMG src="http://webdesign.chinaitlab.com/UploadFiles_8014/200708/003.gif">吗?还行!</P>
<P>&nbsp;</P>我想把所有的 <IMG 。>这样的标签去掉,但是,有个条件,那张图片的名字得留下来
也就是说,要变成<P>001.gif002.gif你好, 003.gif吗?还行!</P>
<P>&nbsp;</P>
这样!然后还要能转换回来,也就是说,要能相互转换的。
<P>001.gif002.gif你好, 003.gif吗?还行!</P>
<P>&nbsp;</P>
这个要能恢复到当初的那个样子。注意:http://webdesign.chinaitlab.com/UploadFiles_8014/ 是固定的。
对了,这是在 JavaScript 里面。

解决方案 »

  1.   

    正向的<textarea id="content" rows="10" cols="100"></textarea>  
    <br /><br />
    <input type="submit" style="width:70px; height:25px;" name="optButton" value="处理" onclick="opt();"> 
    <br /><br />
    <textarea id="result" rows="10" cols="100"></textarea> 
    <br />
    <script type="text/javascript">
    function opt()
    {
        var str = document.getElementById("content").value;
        var reg = /<IMG src="http:\/\/webdesign\.chinaitlab\.com\/UploadFiles_8014\/(?:[^\/]+\/)*([^"\/]+)">/ig;
        var result = str.replace(reg, "$1");
        document.getElementById("result").value = result;
    }
    </script>
      

  2.   

    反向的有些需求需要明确
    1、你只有http://webdesign.chinaitlab.com/UploadFiles_8014/到这里固定,那200708/根据什么取?
    2、你的图片的规则是不是都是“数字.gif”,如果不是,那符合什么样的规律上面的两个需求明确了,基本上也就是用下面的代码,正则稍稍修改下即可<textarea id="content" rows="10" cols="100"></textarea>  
    <br /><br />
    <input type="submit" style="width:70px; height:25px;" name="optButton" value="处理" onclick="opt();"> 
    <br /><br />
    <textarea id="result" rows="10" cols="100"></textarea> 
    <br />
    <script type="text/javascript">
    function opt()
    {
        var str = document.getElementById("content").value;
        var reg = /(\d+\.gif)/ig;
        var result = str.replace(reg, "<IMG src=\"http://webdesign.chinaitlab.com/UploadFiles_8014/200708/$1\">");
        document.getElementById("result").value = result;
    }
    </script>
      

  3.   

    replace("<IMG src="http://webdesign.chinaitlab.com/UploadFiles_8014/","").Repace(""">","")
      

  4.   

    呵呵,lxcnn 兄,厉害!
    反向的也能不能写一下呢?真的太谢谢了!
    其实,我是想做个给留言添加表情的功能,之前实现了,我的做法是将第一段代码整个<img>标签存进数据库,然后取出来就直接在 <div> 中显示,这样方便时很方便,但是,考虑到这样存的数据量会很大,想就存个图片的名称,然后,取出来的时候,再加上前面那个固定的路径,但是搞了好久,没弄出来,
    还希望大家给帮帮忙,要是弄出来了,我可以给大家分享下这个功能,当然可能会有更好的办法。
      

  5.   

    反向的已经在4楼回答了对于正向的,如果200708/这个文件夹只有一级,且都是数字的话,正向的正则可以简化<textarea id="content" rows="10" cols="100"></textarea>  
    <br /><br />
    <input type="submit" style="width:70px; height:25px;" name="optButton" value="处理" onclick="opt();"> 
    <br /><br />
    <textarea id="result" rows="10" cols="100"></textarea> 
    <br />
    <script type="text/javascript">
    function opt()
    {
        var str = document.getElementById("content").value;
        var reg = /<IMG src="http:\/\/webdesign\.chinaitlab\.com\/UploadFiles_8014\/\d+\/([^"\/]+)">/ig;
        var result = str.replace(reg, "$1");
        document.getElementById("result").value = result;
    }
    </script>不知道你这个程序对性能的要求如何,我不认为你这种方法会比直接写数据库好,因为replace这种IO操作要比读写数据库慢的
    而且存取时都要处理,似乎有些得不偿失
      

  6.   

    lxcnn 兄不知还在否,
    第一个可能是我刚才,没有拷贝全,200708/ 也是固定的 http://webdesign.chinaitlab.com/UploadFiles_8014/200708/到这为止,其实就是图片不一样而已。
    第二个的话,我图片也是有规则的,1.都是数字开头的,并且数字都是3位数的。2.格式么都是 .gif 的。
      

  7.   


    那就更简单了//正向
    <script type="text/javascript">
    function opt()
    {
        var str = document.getElementById("content").value;
        var reg = /<IMG src="http:\/\/webdesign\.chinaitlab\.com\/UploadFiles_8014\/200708\/([^"\/]+)">/ig;
        var result = str.replace(reg, "$1");
        document.getElementById("result").value = result;
    }
    </script>
    //反向
    <script type="text/javascript">
    function opt()
    {
        var str = document.getElementById("content").value;
        var reg = /(\d{3}\.gif)/ig;
        var result = str.replace(reg, "<IMG src=\"http://webdesign.chinaitlab.com/UploadFiles_8014/200708/$1\">");
        document.getElementById("result").value = result;
    }
    </script>
      

  8.   

    好的,看来可以结贴了,再次感谢lxcnn 兄。分么见者有份,也感谢
    wuyq11
    ((人生如梦))