本帖最后由 liuweishow 于 2011-06-20 19:51:00 编辑

解决方案 »

  1.   

    这种东西  你到网上淘淘  都会有的   fckedtor文字编辑控件   研究研究    你会有收获地 
      

  2.   

    /<li[^>]*title=(['"\s])?([^\s'"]+)\1[^>]*>/gi
      

  3.   

    这个应该是找标签吧?我需要的是通过正则来传递title然后jquery过滤,title找到了,表情的html那就简单了
      

  4.   

     var html = $("#face").html();
      var reg = /<li[^>]*title=([\'\"\s])?([^\s\'\"]+)\1[^>]*>/gi;
           var result = "";
           var matchData = html.match(reg);
           
           for (var i = 0; i < matchData.length; i++) {
             
               var s = matchData[i];
               if (reg.test(s)) {
                   result += RegExp.$2 + " ";
               }
           }
           alert(result);
      

  5.   

    兄弟,辛苦了,我这么做还是错了
       var html = jQuery("#showface #qq ul").html() + "";
                alert(html);
                var reg = /<li[^>]*title=([\'\"\s])?([^\s\'\"]+)\1[^>]*>/gi;
                var result = $("#txt").value; 这里是要转义的html字符串对吗?
                var matchData = html.match(reg);            for (var i = 0; i < matchData.length; i++) {                var s = matchData[i];
                    if (reg.test(s)) {
                        result += RegExp.$2 + " ";
                    }
                }
                alert(result);
    img=http://t1.qpic.cn/mblogpic/875d7454cb7844afa63c/2000][/img]
      

  6.   

    Tim哥 [兔子党执行督察])可能你还没明白我的意思,我发的帖子已经实现了代码的功能,只是太冗余了,执行效率又慢,我想通过一种提高效率的方法实现。我下班了,拜拜,明天见哦,Tim哥。
      

  7.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    </head>
    <body>
       
        <script type="text/javascript">
        var html = '<li title=\"撇嘴\"><a onclick=\"return false;\" href=\"javascript:void(0)\">';
           html += '<img src=\"http://img.51sports.com/face/qq/1.gif\"></a></li>';
           html += '<li title=\"色\"><a onclick=\"return false;\" href=\"javascript:void(0)\">';
           html += '<img src=\"http://img.51sports.com/face/qq/2.gif\"></a></li>';
           html += '<li title=\"发呆\"><a onclick=\"return false;\" href=\"javascript:void(0)\">';
           html += '<img src=\"http://img.51sports.com/face/qq/3.gif\"></a></li>';
           html += '<li title=\"得意\"><a onclick=\"return false;\" href=\"javascript:void(0)\">';
           html += '<img src=\"http://img.51sports.com/face/qq/4.gif\"></a></li>';
           var result = "";
           var reg = /<li[^>]*title=(['\"\s]?)([^\s'\"]+)\1[^>]*>/gi;
           var matchData = html.match(reg);       for (var i = 0; i < matchData.length; i++) {
               var reg1 = /<li[^>]*title=(['\"\s]?)([^\s'\"]+)\1[^>]*>/i;
               var s = matchData[i];
               if (reg1.test(s)) {
                   result += RegExp.$2 + " ";
               }
           }
           alert(result);
     
        </script>
    </body>
    </html>
    //取出了所有的title
      

  8.   

    我页面有"/得意"表情代码字符串,你怎么把他变成 <img src="http://img.51sports.com/face/qq/4.gif">
    你写的result 是表情输入代码么?如果是,但是你看,得到的是这玩意啊,不是我想要的,tim哥,你可否说句话?
      

  9.   

    不知道有没理解错楼主的意思,你看看<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>test</title>
    </head>
    <body>
        <script language="javascript" type="text/javascript">
    //建立一个表情映射
    var mot = {
    '哈哈':'http://www.abc.com/haha.gif',
    '郁闷':'http://www.abc.com/yumen.gif'
    };
    //假设这是人家写的内容
        var html = '今天发工资了/哈哈,可是一请客全没了/郁闷'
    //找到表情正则,可能不严谨
    var reg = /\/(.{2})/g;
    //替换一下
    var result = html.replace(reg,function(){
    return '<li title="'+RegExp.$1+'"><a onclick="return false;" href="javascript:void(0)"><img src="'+mot[RegExp.$1]+'"></a></li>';
    });
    //结果
    alert('原来的\r\n:'+html + '\r\n\r\n替换后:\r\n'+result);
    console.info(result);
    </script>
    </body>
    </html>
    输出结果:
    今天发工资了<li title="哈哈"><a onclick="return false;" href="javascript:void(0)"><img src="http://www.abc.com/haha.gif"></a></li>,可是一请客全没了<li title="郁闷"><a onclick="return false;" href="javascript:void(0)"><img src="http://www.abc.com/yumen.gif"></a></li>
      

  10.   

    请把 console.info(result);删除
      

  11.   

    非常感谢你的耐心回答哈,我现在才知道原来replace后面可以接方法,这样我就可以
     var a = RegExp.$1;
     var selector = "li[title='"+a+"']";
     var myfacehtml = jQuery(selector).html();,不知道为什么第一遍执行跟第二遍执行的结果好像不一样,有时候返回title有时候返回2,这是正则的问题还是js 的问题?