当我尝试在输入文本框中替换某个值时,他们只替换第一个值,而不是替换整个会话。
在输入文字框中,我的对话看起来像是
用户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;
我有一个名为Prefix_ago
的值,它在我的段落中重复多次,我希望将其替换为冒号&#34; :&#34;该代码正在运行,但它只取代了第一个值,而不是整个段落
答案 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>