我在一个div中 输入这些会自动转成实体
&  会自动转成 &
空格  会自动转成  现在问题是如何在div中写的是什么就在一textarea中也更新为 什么?
比如在Div中写& textarea的值也更新为&我是这么替换但有问题。
val.replace(/&/g, "&").replace(/ /g, " ")因为在div中输入   会转成 &amp 
&amp&nbsp按上面那样替换话就变成  
  这样来更新到 里面去就变为空了。
不是我想得到的结果啊我是输入的  求替方法啊。
就是要:在div中写的是什么就在一textarea中也更新为 什么
只考虑&  与  两个字符串。其它的不用管。谢谢大家。

解决方案 »

  1.   

    纠正下
     
     这样来更新到textarea里面去就变为空了
      

  2.   

    =_=.............我想要的效果是在可编辑的DIV中输入的字符串也同时写到一个textarea当中去。
    但要保持一模一样。代码如下。
    <textarea id="input2"></textarea>
    <div id="input" contenteditable="true" style="border:1px solid #000"> <br><br></div>
    请输入 &  &nbsp;然后取sql_input的值写到 input2当中去,也要是&  &nbsp;值。
    要保持一致。
      

  3.   

    val.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&")
    先替换&nbsp;
      

  4.   

    我脑子真不好使啊。。
    & &nbsp; 是写到textarea当中去了。如果又想让textarea的 & &nbsp; 写回div中应该怎么写?空格替换回&nbsp;、&替换回&amp;?这样怎么处理<span style="">这里面的空格..
    避免弄成<span&nbsp;style="">
    再次谢谢。。
      

  5.   

    写回去
    str.replace('&','&amp;').replace(' ','&nbsp;');
    不处理< >里面的东东哈 这样来
    str='>'+str+'<';
    str=str.replace(/>((?:.|\s)*?)</gi,function (){
    var arg1=arguments[1];
    arg1=arg1.replace('&','&amp;').replace(' ','&nbsp;');
    return '>'+arg1+'<';
    });
    str=str.replace(/^>|<$/g,'');
      

  6.   

    写回去
    str.replace('&','&amp;').replace(' ','&nbsp;');
    不处理< >里面的东东哈 这样来
    str='>'+str+'<';
    str=str.replace(/>((?:.|\s)*?)</gi,function (){
    var arg1=arguments[1];
    arg1=arg1.replace('&','&amp;').replace(' ','&nbsp;');
    return '>'+arg1+'<';
    });
    str=str.replace(/^>|<$/g,'');
      

  7.   

    字符转义就可以了,这几个方法应该对你有用
                      public static string Encode(string str)
    {
    str = str.Replace("&","&amp;");
    str = str.Replace("'","''");
    str = str.Replace("\"","&quot;");
    str = str.Replace(" ","&nbsp;");
    str = str.Replace("<","&lt;");
    str = str.Replace(">","&gt;");
    str = str.Replace("\n","<br>");
    return str;
    }
    public static string Decode(string str)
    {
    str = str.Replace("<br>","\n");
    str = str.Replace("&gt;",">");
    str = str.Replace("&lt;","<");
    str = str.Replace("&nbsp;"," ");
    str = str.Replace("&quot;","\"");
    return str;
    }
    public static string re(string str)
    {
    str = str.Replace("&","&amp;");
    str = str.Replace("'","''");
    return str;
    }
      

  8.   

    改成替换所有的 用正则//g 
    str.replace(/&/g,'&amp;').replace(/ /g,'&nbsp;');
      用正则//g 
    str='>'+str+'<';
    str=str.replace(/>((?:.|\s)*?)</gi,function (){
    var arg1=arguments[1];
    arg1=arg1.replace(/&/g,'&amp;').replace(/ /g,'&nbsp;');
    return '>'+arg1+'<';
    });
    str=str.replace(/^>|<$/g,'');
      

  9.   


    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
    <textarea id="input2" onkeyup="change2()"></textarea>
    <div onkeyup="change()" id="input1" contenteditable="true" style="border:1px solid #000"><br><br></div>
    <script type="text/javascript">
        function change() {
            var input1 = document.getElementById('input1');
            var input2 = document.getElementById('input2');
            input2.value = input1.innerHTML.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&");    }
        function change2() {
            var input1 = document.getElementById('input1');
            var input2 = document.getElementById('input2');
            input1.innerHTML = input2.value.replace(/&/g, "&amp;");    }
    </script>
    </body>
    </html>
      

  10.   

    #11楼的替换我明白啊。我问题是怎么替换才好。
    #13楼的代码也可行哈。。--------------------------------------------空格能直接写回去哈.不用转了 就只是&nbsp; 不能直接写回去。我转下就好拉。&不转也可以写回去。但与nbsp;一起就弄成空格了。
    着色的代码与纯文本的代码可以互换拉。问题完美解决。搞时实互换不知还有什么问题。
    先结贴了。谢谢各位啊 谢谢各位啊~~!!!!!