function CovertFromXmlTag(value)
{
value = value.replace("&","&");
value = value.replace( "<","&lt;");
value = value.replace( ">","&gt;");
value = value.replace("\"", "&quot;");
value=value.replace(" ","&nbsp;");
value=value.replace("\r\n","<br>");return value;
}当我实践的时候,为什么他只把第一个标签替换,而后面的不替换了比如
value="<script>alert('adsfa')</script>
&nbsp;'''     '"转换后变成:
<script>alert('adsfa')这里应该还有代码
&nbsp;'''  '红色部分不显示,也就是出错了比如一个value有两个"<"符号,他只替换前面哪个?这是为什么

解决方案 »

  1.   

    js 的replace 只替换一个的你必须要js的正则表达式来替换就可了
    http://hi.baidu.com/zzcc_8/blog/item/57535a3552210082a71e1237.html
      

  2.   

    不会吧.
    你的" <" 前面是不是有空格啊? 有空格的话那当然替换不到了."<"和" <"可不是一样的哦.
      

  3.   

    alert("abacacf".replace('a','9'));
    alert("abacacf".replace(/a/g,'9')); 
    第一个运行的结果 9bacaf 这个只是替换了第一个第二个运行的结果 9b9c9f 这个能实现js的全部替换功能
      

  4.   

    str.replace("|",",") 
    只会替换第一个匹配的字符, str.replace(/\|/g,",")则可以替换掉全部匹配的字符(g为全局标志)。
      

  5.   


     
    function CovertFromXmlTag(value)
     { value = value.replace("\&\g","&amp;");
     value = value.replace( "\<\g","&lt;");
     value = value.replace( "\>\g","&gt;"); //依此规律 试下
     value = value.replace("\"", "&quot;"); 
    value=value.replace(" ","&nbsp;"); 
    value=value.replace("\r\n","<br>");
     return value; }
      

  6.   

    function CovertFromXmlTag(value)
     { value = value.replace("\&\g","&amp;");
     value = value.replace( "\<\g","&lt;");
     value = value.replace( "\>\g","&gt;"); //依此规律 试下
     value = value.replace("\"", "&quot;"); 
    value=value.replace(" ","&nbsp;"); 
    value=value.replace("\r\n","<br>");
     return value; }
    javascript:alert(("a&ssss&eee".replace(/&/g,"&amp;")));
    测试通过,结果