2016-09-09 18 views
1

に、私はこのような文字列だ `" `置き換える:JavaScriptの正規表現タグ

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

私は<>間のすべての文字を一致させる方法を知っているが、特定の文字を置換する方法見当がつかないを私がしたいです... '"を置き換える。

+0

ので、どのように< and >内のテキストと一致したのですか? – epascarello

+0

'/ <.*?>/g'これは問題ありません@epascarello – passion

+0

これは正規表現1つでできますか? – passion

答えて

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」は

はそれが役に立てば幸い出現をすべて置き換えることです。

+0

この方法で行うことができますが、1つの正規表現内で行うことはできませんか? – passion

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
この解決策は、""の1セットに対してのみ有効です。

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

結果

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

@Sと同じです。ガーセス。 – passion

+0

私はjsonの文字列を単純化しました。それは '" "'の2つ以上のペアを含んでいます。 – passion

+0

@passion私は '<>'と ' – user3335966