假设我有一个字符串:
"Audio":[{"ID":"0","Codec": "AC-3","Info":"192 Kbps, 48.0 KHz (2 channels)","Language":"Spanish (##He aqui "el teléfono que nunca suena" pero debería##)","Default":"Yes"}]我想转换成:
"Audio":[{"ID":"0","Codec": "AC-3","Info":"192 Kbps, 48.0 KHz (2 channels)","Language":"Spanish (He aqui \"el teléfono que nunca suena\" pero debería)","Default":"Yes"}]正如您所看到的,我想转义存在于"##“符号之间的所有引号,另外还要删除这些符号,如何通过使用replace()方法来实现这一点?我的意思是怎么会是正则表达式模式。谢谢
发布于 2016-04-10 17:31:46
如果你真的想这么做,那么
input.replace(/##(.*?)##/g, function(match) { return match.replace(/"/g, '\\"'); })应该能胜任这项工作。
这将所有##...##序列替换为其中的引号替换为转义引号的结果。
发布于 2016-04-10 17:35:14
var str = '"Audio":[{"ID":"0","Codec": "AC-3","Info":"192 Kbps, 48.0 KHz (2 channels)","L##a"g##uage":"Spanish (##He aqui "el teléfono que nunca suena" pero debería##)","Default":"Yes"}]';
var result = str.replace(/##(.*?)##/g, function(v) { return v.replace(/"/g, "\\\""); });
print(result)https://stackoverflow.com/questions/36527352
复制相似问题