首页 > 解决方案 > 为文本区域中的每个匹配项创建一个函数

问题描述

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

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

从这里开始,我尝试的每个功能都不起作用……有什么建议吗?

标签: jqueryfunctionforeach

解决方案


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

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


推荐阅读