找到&替换不起作用

时间:2017-06-12 16:18:09

标签: jquery html

当我尝试在输入文本框中替换某个值时,他们只替换第一个值,而不是替换整个会话。

在输入文字框中,我的对话看起来像是

用户1 Prefix_ago 用户2 Prefix_ago 用户1 Prefix_ago

我想只替换prefix_ago:



function copy() {
  var text = document.getElementById('result1').value;
  document.getElementById('id1').innerHTML = text;
  $('#id1').each(function() {
    var text = $(this).text();
    $(this).text(text.replace('prefix_ago', ' : '));
  });
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class="result" id="result1" rows="10" cols="150" style="font-size:11px;resize: none; width:225px;"></textarea>
<button class="btn58" id="btn" onClick="copy()"> Copy & Replace</button>
<div id="id1">

</div>
&#13;
&#13;
&#13;

我有一个名为Prefix_ago的值,它在我的段落中重复多次,我希望将其替换为冒号&#34; :&#34;该代码正在运行,但它只取代了第一个值,而不是整个段落

1 个答案:

答案 0 :(得分:0)

答案的核心是,您需要在正则表达式中包含'g'选项,以便匹配多个实例。

也就是说,你的代码过于复杂 - 在单个输出字段上不需要$.each,或者在更改之前将文本复制到输出字段中。这是一个简化版本:

function copy() {
  var txt = $('#result1').val().replace(/prefix_ago/g, ' : ');
  txt = txt.replace(/\n/g, '<br>'); // <-- per comments below
  $('#id1').html(txt);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="result1" rows="10" cols="150">
test prefix_ago test 
prefix_ago test    
test prefix_ago test 
prefix_ago test
</textarea>
<button onclick="copy()"> Copy & Replace</button>
<div id="id1">
</div>