为文本区域中的每个匹配创建一个函数

问题描述

我有一个文本区域,其中一些表达式放在方括号中。我需要在方括号内找到所有表达式,并向每个表达式添加一些代码(将它们包装在内)

到目前为止,我只设法识别了表达式,但是我找不到运行循环函数来处理它们的方法(我在想一个“每个”函数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( /\[(.*)\]/  );
});

从这里开始,我尝试的每个功能都无法正常工作...有什么建议吗?

解决方法

我建议检查您的正则表达式,如果它返回正确的匹配项。可能没有返回您期望的正确匹配。

$(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>

上面的代码将匹配[]中的文本,并创建一个列表并将其附加到具有id输出的div上。无法从问题中得知wrap them inside是什么意思。