Вот один из подходов:
function encodeQuotesOccuringAfter(string, substring) {
if(string.indexOf(substring) == -1) {
return string;
}
var all = string.split(substring);
var encoded = [all.shift(), all.join(substring).replace(/"/g, """)];
return encoded.join(substring)
}
Этот второй является немного расточительным, но вы можете переместить это в функцию и вычислить startAt
только один раз.Идея состоит в том, чтобы искать все кавычки и изменять только те, которые имеют «H1:» перед ними.
str.replace(/"/g, function(match, offset, string) {
var startAt = string.indexOf("H1:");
if(startAt != -1 && offset > startAt) {
return """;
}
else {
return '"';
}
});
Используя наше знание области, что H1:
не содержит кавычек, мы просто делаем заменуна всю строку.
str.replace(/"/g, """);