var a="ssldfj sdf sd<img src='upload/2.gif'>";
var b=a.replace(" ","&nbsp;");
求一正则表达式要求只替换字符之间的空格,而不替换<img 里的空格!
我上面的做法连img里的空格也替换掉啦
哪位大哥帮帮忙!

解决方案 »

  1.   

    string   s   =   "a       b       c   f "; 
                            Regex   r   =   new   Regex(@ "\s{2,} "); 
                            s   =   r.Replace(s,   "   "); 
                            Console.WriteLine(s); 
                            Console.WriteLine(s.Length);
      

  2.   

    var   a="ssldfj   sdf   sd <img   src='upload/2.gif'> "; 
    i = a.indexOf("<");
    var str = a.subString(0,i);
    var b=a.replace(" ","&nbsp;");
    a=b+a.subString(i+1,a.length);
    好象是,JS的方法都忘了
     
      

  3.   

    先声明一下是javascript
    要正则表达式啊
      

  4.   

    /(?<!<[^>]*)\s+(?![^<]*>)/
      

  5.   

    /(?<!<[^>]*)\s+(?![^<]*>)/g
      

  6.   

    <script type="text/javascript">
      var   a="ssldfj   sdf   sd <img   src='upload/2.gif'> "; 
    var   b=a.replace(/(?!<[^>]*)\s+(?![^<]*>)/gi,"&nbsp;"); 
    alert(b);
    </script>
      

  7.   

    8楼的可是可以不过又出现啦一个问题
    用啦这个之后 replace(new RegExp("[\n]","ig"),"<br>");
    替换换行的都无效啦 
      

  8.   

    replace(new   RegExp("[\n]","ig")," <br> "); 
    ----
    这个是什么表达式.是不是这个意思replace(new   RegExp("\\n]","ig"),"<br>"); 
      

  9.   


    replace(new   RegExp("\\n","ig"),"<br>"); 
      

  10.   

    Str=Str.replace(/(?!<[^>]*)\s+(?![^<]*>)/gi,"&nbsp;"); 
    Str=Str.replace(new RegExp("\\n","ig"),"<br>"); 
    为什么这两个不能同时使用啊 
    前面的执行啦 后面的就无效
    换个位置也一样啊 郁闷 
      

  11.   

    对了,是因为有了<BR>我再看看。
      

  12.   

    <script type="text/javascript">
      var   a="ssldfj   sdf   sd <img   src='upload/2.gif'>\r\naaaaaa"; 
    var   b=a.replace(/(?!<[^>]*)[^\S\r\n]+(?![^<]*>)/gi,"&nbsp;"); 
     
    b= b.replace("\n","<BR>");
    alert(b);</script>
      

  13.   

    把你的QQ告诉我啊 QQ聊啊 
      

  14.   

    我要实现一个预览效果啊
    我在开发一个类似许愿墙的网站
    我用一个textArea接收用户输入的信息
    然后用一个div使用javascript获取textArea的值
    textArea里还可以插入图片
    我用的是textArea的onkeyup事件 左边textArea输入拉什么  右边 div里就出现啦什么
    要实现一个预览效果啊
      

  15.   

    我现在只关心这段代码能不能正确执行。<script type="text/javascript">
      var   a="ssldfj   sdf   sd <img   src='upload/2.gif'>\r\naaaaaa"; 
    var   b=a.replace(/(?!<[^>]*)[^\S\r\n]+(?![^<]*>)/gi,"&nbsp;"); 
     
    b= b.replace("\n","<BR>");
    alert(b);</script>
      

  16.   

    我试过啦不行啊,你看看我是使用textArea啊 不只是 
    一个字符串
    上面的字符串只是举个例子来表示这个问题罢了
      

  17.   

    那你把你的textarea 的字串发出来
      

  18.   

    Str = "但是     的
     <IMG src=\"upLoad/002.gif\"><IMG height=30 src=\"upLoad/002.gif\" width=30><IMG height=30 src=\"upLoad/002.gif\" width=30>
     的        的"
     里面含有换行符号
    可是textArea中的换行符号是隐藏的  调试的时候看不到
      

  19.   

    不是啊 我发现是这样的 如果先替换换行的话 换行有啦 不过 再替换空格的时候<br>与<br>之见的空格也被替换掉啦
    变成啦<br>&nbsp;<br> ,还有啊 本来我是输入啦3个空格 正确的结果应该为&nbsp;&nbsp;&nbsp; 结果只有一个&nbsp;所有会与之前的输入有很大的差距,郁闷中..............
      

  20.   

    用<pre></pre>来显示。
      

  21.   

    lz是不是要这样的function show(){
    s = aa.innerHTMLs = s.replace(/&lt;/g,"<");
    s = s.replace(/&gt;/g,">");
    s = s.replace(/\r\n/g,"<br />");
    s = s.replace(/ /g,"&nbsp;");
    s = s.replace(/(<.*?)&nbsp;(.*?>)/g,"$1 $2");bb.innerHTML = s;
    }
    </script>
    <textarea name="aa" id="aa" cols="30" rows="10">
    1
     2
      3
       4
    <img src="../3.jpg" />
    </textarea>
    <input name="" type="button" value="click" onclick="show();" />
    <div id="bb"></div>
      

  22.   

    用 <pre> </pre> 来显示。
    ---------
    慕白兄正解.