2017-06-12 9 views
0

入力テキストボックスの値を置き換えようとしたときに、最初の値だけを置き換え、全体の会話を置き換えないときにみんな。Find&Replace not working

私は会話が私が唯一prefix_agoを交換したい

ユーザー1人のPrefix_ago ユーザー2 Prefix_ago ユーザー1 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>

私はPrefix_agoと呼ばれる値を持っています。私の段落で何度も繰り返しています。帽子をコロン ":"そのコードは動作していますが、段落全体ではなく最初の値だけを置き換えます

+2

可能な重複は、[JavaScriptで文字列のすべての出現を交換する方法は?](https://stackoverflow.com/questions/1144783/how-to- – mrogers

+2

1つの要素( '#id1')をループするのに' .each() 'を使っているのはなぜですか?その要素に直接アクセスしてください。 –

+0

'string.replace(str、str)'実際には、 'string.replace(regex、str)'とは異なり、最初の出現箇所のみを置き換えます。 ↑↑ちょうど2つのコメントをリンクした質問の最初の答えはかなり包括的です。 – Boris

答えて

0

答えの中核は、正規表現に複数のインスタンス。

つまり、コードをかなり複雑にしています.1つの出力フィールドに$.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>

+0

私は十分に答えを説明しなかったのでdownvoteがあった場合、私は更新しました。それが理由でない場合、私は提案に開放されています! –

+0

ありがとうございます。私はユーザー間で会話していますが、このコードはすべての行を段落にまとめています.Jqueryを初めて使用しています。\ nか更新する必要がありますか? –

+0

会話は以下のようです1行ユーザー1 prefix_ago ユーザー2 prefix_ago ユーザー1 prefix_ago ユーザー2 prefix_ago 1 prefix_ago ユーザー2 prefix_ago –