#jquery #function #foreach
#jquery #функция #foreach
Вопрос:
У меня есть текстовая область с некоторыми выражениями в квадратных скобках. Мне нужно найти все выражения внутри квадратных скобок и добавить некоторый код к каждому выражению (обернуть их внутрь)
До сих пор мне удалось идентифицировать только выражения, но я не могу найти способ запустить функцию цикла для их обработки (я думал о «каждой» функции) пример для html-кода:
<div id="myDiv">
<textarea>
everyone [David] wants to travel the world [Paris] with a car [Fiat]
</textarea>
</div>
мой код jQuery до сих пор:
$(document).ready(function() {
var myText = $('#myDiv').text();
var regex= /[([^]]*)]/;
var result = myText.match( /[(.*)]/ );
});
Отсюда каждая функция, которую я пробую, просто не работает … есть предложения?
Ответ №1:
Я бы посоветовал проверить ваше регулярное выражение, если оно возвращает правильное совпадение. Возможно, это не возвращает правильное совпадение, которое вы ожидаете.
$(document).ready(function() {
var myText = $('#myDiv').text();
var result = myText.replace(/[/g, '<span>').replace(/]/g, '</span>');
$('#output').append(result);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myDiv">
<textarea>
everyone [David] wants to travel the world [Paris] with a car [Fiat]
</textarea>
<div id="output"></div>
</div>
Приведенный выше код сопоставит текст внутри [], создаст список и добавит его в div с выводом идентификатора. Не могу понять из вопроса, если это то, что вы имеете в виду wrap them inside
.
Комментарии:
1. Спасибо, пуши, это серьезное усовершенствование, единственное, чего не хватает, так это того, что конечный результат должен быть с исходным текстом, например: <div id=»output»> все, <span>Дэвид</span>, хотят путешествовать по миру, <span>Париж</span>, на машине <span>Fia</span></div>
2. В этом случае вы можете использовать replace вместо match . Я изменил ответ, чтобы отразить то же самое.