Я пытаюсь разобрать следующие данные, перейдя через каждую матчи, но выражение захватывает первый [FILE] весь путь до последнего [/ FILE]. Я хочу, чтобы он повторял каждый собственный тег.Regex для синтаксического анализа и создания нескольких пользовательских тегов
данных:
"[FILE]file_1.png[/FILE]<br /><br /><br />[FILE]file_2.png[/FILE]"
Результаты:
file_1.png<br /><br /><br />file_2.png`
.
var urlRegex = /(\[FILE\]).*(\[\/FILE\])/ig;
text = text.replace(urlRegex, function(url) {
url = url.replace(/\[.?FILE\]/ig, "");
var path = "./uploads/" + $('#CURRENT_FOLDER_UID').val() + "/";
var res = "";
arr = url.split(".");
ext = (arr[arr.length - 1]).toLowerCase();
if (img.indexOf(ext) > -1) {
//url = encodeURI(url);
res = '<img src="' + path + encodeURI(stripHTML(url)) + '" />';
} else {
res = '<a href="' + path + encodeURI(stripHTML(url)) + '" target="_blank">' + url + '</a>';
}
return res;
});
Выглядит это сделал ... ничего себе. Спасибо за быстрый ответ. Я тестирую немного больше и, вероятно, отвечу на это. – kenyu73
Вы можете принять его сейчас, так как он прав. '' 'Делает 'матч X, за которым следует что-либо, а затем Y' не-жадный. По умолчанию «соответствие X, за которым следует все, за которым следует Y», соответствует все, что находится между первым «X» и последним вложением «Y», в то время как '?' Сообщает движку regex остановиться при первом результате. –