日期:2014-05-16  浏览次数:20365 次

正则表达式如何替换双引号包裹的单引号
首先感谢打开本贴。
需求:

var str='I\'m <span style="font-family:\'微软雅黑\';font-size:20px;" >I\'m demo</span>测试测试I\'m demo';
//想要的结果 I\'m <span style="font-family:微软雅黑;font-size:20px;" >I\'m demo</span>测试测试I\'m demo'

需要用将双引号中的单引号删除。
若能指教万分感谢。如果能告知具体的知识点和教材让我学会自己解决这类问题的话就最好了。
正则表达式 javascript

------解决方案--------------------
这个好像要用正则平衡分组,JS 的正则好像不支持
------解决方案--------------------
这个可以实现你这个帖子的要求

var str='I\'m <span style="font-family:\'微软雅黑\';font-size:20px;" >I\'m demo</span>测试测试I\'m demo';
//想要的结果 I\'m <span style="font-family:微软雅黑;font-size:20px;" >I\'m demo</span>测试测试I\'m demo'
str=str.replace(/"[^"]+"/g,function(){
return arguments[0].replace(/'/g,'');
});
console.log(str);

实际上我感觉你是想要这样的东西
str='I\'m <span style="font-family:\'微软雅黑\';font-size:20px;" >"I\'m demo"</span>测试测试I\'m demo';
str=str.replace(/<[^>]+>/g,function(){
return arguments[0].replace(/"[^"]+"/g,function(){
return arguments[0].replace(/'/g,'');
});
});
console.log(str);

就是先把要替换的父块找出来,然后替换父块里的东西
推荐一篇文章http://www.iteye.com/topic/481228