javascript正则表达式替换标签中的`"`

时间:2016-09-09 01:55:46

标签: javascript regex

我有一个这样的字符串:

"{"name":"joy","tag":"<img src="/1/1.png"/>hello<img src="/1/2.png">"}"

我知道如何匹配<>之间的所有字符,但不知道如何替换某些字符...我想用"替换'

2 个答案:

答案 0 :(得分:1)

你可以做点什么

var result = "{\"name\":\"joy\",\"tag\":\"<img src=\"/1/1.png\"/>hello<img src=\"/1/2.png\">\"}".replace(/<(.*?)>/g, function(a, b){
    return a.replace(/"/g, "'");
});

console.log(result);

这将替换单引号的html元素中的所有引号,'g'将替换所有出现的内容

希望它有所帮助。

答案 1 :(得分:1)

str = '{"name":"joy","tag":"<img src="/1/1.png"/>hello<img src="/1/2.png">"}';

解决方案1 ​​

res = str.match(/\<[^>]+\>/g);
for(var i = 0, l = res.length; i < l; i++){
    str = str.replace(res[i], res[i].replace(/"/g, "'"));
}

解决方案2
!!! 此解决方案仅适用于一组"" !!!

res = str.replace(/(\<[^">]*)"([^">]*)"([^>]*\>)/g, "$1'$2'$3");

结果

"{"name":"joy","tag":"<img src='/1/1.png'/>hello<img src='/1/2.png'>"}"