var o=document.getElementById("msg").innerHTML
o=o.replace(/\n/gi,"<br>  ");
document.getElementById("msg").innerHTML = o ;//有这句没?

解决方案 »

  1.   

    明白是什么原因了,
    var o=document.getElementById("msg").outerHTML
    //o=o.replace(/\n/gi,"<br>");
    alert( o )
    楼主看一下,里面就没有回车.
    innerHTML并不是忠实地按你的输入去赋值,而会作一些它认为有必要的改动和格式化.楼主可以用这个标签:
    <pre>
    1
    2
    3
    </pre>
      

  2.   

    使用pre的话,长句子,就不会自换行了。:(
      

  3.   

    我使用了最笨的方法:
    另建一个<div id=tt>.
    b</div>
    读出tt中的第二个字符,进行ascii编码,居然是32。
    但是它来替换,可以替换回车。却连小写空格也替换了。
    ---------------
    用另一个法子:\s做替换,不起作用。