var obj = JSON.stringify(test[t][i]['name']).replace(/\"/g,"'");为什么老是说有语法错误呀,不能成功转为单引号,在线等,急,大神们帮帮忙

解决方案 »

  1.   

    因为要在js输出的html页面字符串带有双引号,不能被选中,所有赚换成单引号来操作,但是现在发现转成单引号之后又出了新问题,还是不能被选中
      

  2.   


    因为要在js输出的html页面字符串带有双引号,不能被选中,所有赚换成单引号来操作,但是现在发现转成单引号之后又出了新问题,还是不能被选中
      

  3.   


    for(var i in test[t]){
                                        if(test[t][i]['name'].indexOf("'") == 0){
                                            var brand_name = "\\"+test[t][i]['name'];
                                         } else if(test[t][i]['name'].indexOf('"') >= 0){
                                                var brand_name = test[t][i]['name'].replace(/\"/g,"'");
                                                var brand_name = "\\"+brand_name;
                                         } else {
                                                var brand_name = test[t][i]['name']; 
                                         }
                                         
                                        html +='<li>';
                                        html +='<a id="n'+test[t][i]['code']+'" class="'+((brand_code == test[t][i]['code']) ? 'checked' : '')+'" href="javascript:void(0)" onclick="check_mine('+test[t][i]['code']+',\''+brand_name+'\')"> '+test[t][i]['name']+'</a>';       
                                        html +='</li>';
                                   上面这个是循环,下面这个是获取选中的brand和brang_code
    function check_mine(id,name){
            //o.removeClass("checked");
            $('.b > a').removeClass("checked");
            var o = $("#n"+id);
            var ids = $("#brand_code").val();
            var names = $("#brand-input .search_input").val();
            o.addClass("checked");
            $("#brand_code").val(id);
            $("#brand-input .search_input").val(name);
            $('#brand').val(name);
            $(".selectlayer").hide();
      

  4.   

    是不是我没有说清楚啊,比如,我选这个:"Au Destin" Painkiller ,它本身带了双引号,选择就出现Uncaught SyntaxError: missing ) after argument list错误,<!DOCTYPE HTML>后面有个红色的×
      

  5.   


           if(test[t][i]['name'].indexOf("'") == 0){
                                            var brand_name = "\\"+test[t][i]['name'];
                                         } else if(test[t][i]['name'].indexOf('"') >= 0){
                                                var brand_name = test[t][i]['name'].replace(/\"/g,"'");
                                                var brand_name = "\\"+brand_name;
                                         } else {
                                                var brand_name = test[t][i]['name']; 
                                         }
    换成:
     var brand_name=test[t][i]['name'].replace(/(['"])/,"\\$1")
      

  6.   

    不行呀,换了也有错误Invalid regular expression: /(['"]/: Unterminated group,
     var brand_name = test[t][i]['name'].replace(/(['"]/,"\\$1");
      

  7.   

    不好意思,应该是:var brand_name='"Au Destin" Painkiller'.replace(/(['"])/g,"\\\\\\\$1")
      

  8.   

    也就是,必须有三个\\\,才可以正常工作。
    其实,如果不介意,可以使用转义为对应的全角‘  “
    就没有这种问题了var brand_name=test[t][i]['name'].replace(/(['])/g,"’").replace(/(["])/g,"”")
      

  9.   

    现在能把双引号转为单引号啦,只是在加载的HTML页面选择"Au Destin" Painkiller这个选项,不会被选中,出现<!DOCTYPE HTML>后面有个红色的×这个问题