字符串中双引号转单引号 var obj = JSON.stringify(test[t][i]['name']).replace(/\"/g,"'");为什么老是说有语法错误呀,不能成功转为单引号,在线等,急,大神们帮帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为要在js输出的html页面字符串带有双引号,不能被选中,所有赚换成单引号来操作,但是现在发现转成单引号之后又出了新问题,还是不能被选中 因为要在js输出的html页面字符串带有双引号,不能被选中,所有赚换成单引号来操作,但是现在发现转成单引号之后又出了新问题,还是不能被选中 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_codefunction 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(); 是不是我没有说清楚啊,比如,我选这个:"Au Destin" Painkiller ,它本身带了双引号,选择就出现Uncaught SyntaxError: missing ) after argument list错误,<!DOCTYPE HTML>后面有个红色的× 将 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") 不行呀,换了也有错误Invalid regular expression: /(['"]/: Unterminated group, var brand_name = test[t][i]['name'].replace(/(['"]/,"\\$1"); 不好意思,应该是:var brand_name='"Au Destin" Painkiller'.replace(/(['"])/g,"\\\\\\\$1") 也就是,必须有三个\\\,才可以正常工作。其实,如果不介意,可以使用转义为对应的全角‘ “就没有这种问题了var brand_name=test[t][i]['name'].replace(/(['])/g,"’").replace(/(["])/g,"”") 现在能把双引号转为单引号啦,只是在加载的HTML页面选择"Au Destin" Painkiller这个选项,不会被选中,出现<!DOCTYPE HTML>后面有个红色的×这个问题 PHP如何获得 Discuz! 7.2 的用户名 如何设定参数$n默认值? 如何向框架传递参数?在线等待^^^^^^^^^^^^^ 奇怪的$_POST["username"]问题 从来就没见过这么垃圾的搜索引擎!!! 一个有订单功能的商务网怎么配置SSl 问个常见的问题 如何运行? 我的JPEG图像怎样显示在页面上? 这个wsdl该怎么使用?急!PHP-->soapclient 一段灵异代码,求指教解决办法! 关于订餐系统的问题,PHP是如何调用订单机打印出订单?
因为要在js输出的html页面字符串带有双引号,不能被选中,所有赚换成单引号来操作,但是现在发现转成单引号之后又出了新问题,还是不能被选中
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();
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")
var brand_name = test[t][i]['name'].replace(/(['"]/,"\\$1");
其实,如果不介意,可以使用转义为对应的全角‘ “
就没有这种问题了var brand_name=test[t][i]['name'].replace(/(['])/g,"’").replace(/(["])/g,"”")