Я проверяю коллекцию и заменяю все теги
<Localisation container="test">To translate</Localisation>
текстом.
Следующие коды выполняют то, что я хочу:
var localisationRegex = new RegExp("(?:<|<)(?:LocalisationKey|locale).+?(?:container|cont)=[\\\\]?(?:['\"]|("))(.+?)[\\\\]?(?:['\"]|(")).*?(?:>|>)(.*?)(?:<|<)/(?:LocalisationKey|locale)(?:>|>)", "ig");
match = localisationRegex.exec(parsedData);
while (match != null) {
var localeLength = match[0].length;
var value = match[4];
parsedData = parsedData.substr(0, match.index) + this.GetLocaleValue(value) + parsedData.substr(match.index + localeLength);
match = localisationRegex.exec(parsedData);
}
Но когдастрока, которую я заменяю, длиннее исходной строки, индекс / место, где она начнет искать следующее совпадение, неверен (слишком далеко).Это иногда приводит к тому, что теги не найдены.