var str = '变量值';
而变量值中可能包含“'”单引号、“"”双引号的情况,这些就会与“'变量值'”中的“'”匹配了,导致代码不对,请问这样的情况应该怎么处理?例如:
str = 'Researchers Find New Information About 'Snowball Earth' Period';有人会说用转义字符,但是我根本不知道变量值是什么,所以没法用转义字符去处理,有遇到这种情况的,请告知一下解决方法

解决方案 »

  1.   

    你想要的就是一个ReplaceAll的方法吧,可以用replace对str进行处理,判断时,加\转意
      

  2.   

    内层引号只要不能它的直接外层引号一样就没关系了 
    例如 : var xx = "he said,'hi ! my name is "tom"'.";
    js 中单双引号效果是一样的
      

  3.   

    代码中写要转义
    str = 'Researchers Find New Information About \'Snowball Earth\' Period';页面本身传入的数据(比如文本框)无需转义(已经转义过了)外部传入的数据(服务器端脚本输出)由数据发送方视情况转义
      

  4.   

    可将特殊符号 html 实体转义下。
      

  5.   

    javascript的单双引号都一样的,只要使用时候对称就好。。会自动匹配的。
      

  6.   

    表示字符串直接使用,否则使用\转义符号。"<a  title='"+data[i].IP+"' href='#' onclick=\"doGo(this.title);return false;\" >" + data[i].Name + "</a>";
      

  7.   

    replace(/\'/g,'\\\'').replace(/\"/,'\\\"')
      

  8.   

    一般情况下,你根本不需要知道变量值是什么,你担心的问题也绝不会发生,用一个变量给另一个变量赋值,只需要简单的这样写即可:
    var str = str2;除非只有一种情况:你是在使用字符串动态地拼接生成JS脚本。
    如果确实是这种情况,你才需要使用以上各位介绍的字符替换方法,而且不止要替换引号,还要考虑换行符、控制字符……那情况可不是一般地复杂。
    请楼主仔细考虑一下,你真的是这种情况吗?