这是图片前面的文字<img>http://....com</img>这是图片后面的文字,这是图片前面的文字<img>http://....com</img>这是图片后面的文字我想达到的效果是:文字用文本显示,图片开始用一张默认的代替然后请求图片链接,请求成功后替换默认的。但是要按照顺序显示文字、图片,应该怎么做到呢??求指点,谢谢!

解决方案 »

  1.   

    <!DOCTYPE HTML>
    <html>
        <head>
            <meta charset="gb2312" />
            <title></title>
            <style>
            </style>        
        </head>
        <body>
            <script>
                var str = '这是图片前面的文字<img>http://www.baidu.com/img/baidu_jgylogo3.gif</img>这是图片后面的文字,这是图片前面的文字<img>http://www.baidu.com/img/baidu_jgylogo3.gif</img>这是图片后面的文字';
                var r1 = /[^,]+/g;
                var r2 = /<img>(.+?)<\/img>/;
                var arr = str.match(r1);
                for( var i = 0, len = arr.length; i < len; i++ ){
                    var tmp = arr[i].replace(r2, '<img src="$1">');
                    var div = document.createElement('div');
                    div.innerHTML = tmp;
                    document.body.appendChild(div);
                }
            </script>
        </body>
    </html>
      

  2.   

    问题都木有看明白,这应该不是正则的问题图片更新
    <img id=xxx name=xxx src=默认图片 onclick=xxx>yyyy</img>
    在onclick事件里修改src为新的图片就可以了其他的按你现在处理保持不变
      

  3.   

    我的意思是怎么把前面的文字找出来,图片链接找出来,图片后面的文字找出来??这是图片前面的文字<img>http://....com</img>这是图片后面的文字
      

  4.   

    我的意思是怎么把前面的文字找出来,图片链接找出来,图片后面的文字找出来??这是图片前面的文字<img>http://....com</img>这是图片后面的文字
      

  5.   

    我的意思是怎么把前面的文字找出来,图片链接找出来,图片后面的文字找出来??这是图片前面的文字<img>http://....com</img>这是图片后面的文字 
      

  6.   

    顶楼的需求跟5楼的说明不一致。顶楼的需求相对简单,将<img>xxoo</img>这种片段,转换为一段带JS的HTML脚本即可,比如:
      <img onload="loadImg(this, 'http://..../xxoo.jpg')" src="/img/default.jpg" />
    然后写个loadImg的函数去负责异步下载图片好了。至于用正则匹配出<img>xxoo</img>,这个难度貌似就更低了。
      html = html.replaceAll("<img>([^<]+)</img>", "<img onload="loadImg(this, '$1')" src="/img/default.jpg" />");
    至于5楼的需求,复杂度就比较高了
      

  7.   


    这是图片前面的文字<img>http://....com</img>这是图片后面的文字  
    “这是图片前面的文字”,“这是图片后面的文字”有什么分界符吗?还是说就是固定是这样的字符串了?
    如果是固定的字符串
    String s = "这是图片前面的文字<img>http://....com</img>这是图片后面的文字,这是图片前面的文字<img>http://....com</img>这是图片后面的文字";
    Matcher m = Pattern.compile("(?i)(.*?)<img>(.*?)</img>(.*?)([,]|$)").matcher(s);
    while (m.find()) {
        System.out.println(m.group(1));
        System.out.println(m.group(2));
        System.out.println(m.group(3));
    }
      

  8.   


    没有分节符的,文字无限制,随便多少。只是图片会用<img></img>包起来,文字是没有包含起来的。
    因为目前我在做论坛的帖子这块需要这样的要求
      

  9.   

    主要是[]是正则表达式的特殊字符,所以需要进行转义,其它并没啥特殊的:String s = "测试字符串";
    String pat = "\\[img\\]([^\\[]*)\\[/img\\]";
    Matcher m = Pattern.compile(pat).matcher(s);
    while (m.find()) {
        System.out.println(m.group(1));
    }
      

  10.   

    String s = "";
    s = s.replaceAll("\\[img\\](.*?)\\[/img\\]", "$1");
    System.out.println(s);