在 JavaScript 中使用 keyup 事件更改同步文本区域的值

Change the value of synced textarea with keyup event in JavaScript

我每次都想把ik改成b,但只改了一次。我尝试了很多方法来动态更改它,但我做不到。谁能帮忙?

$(document).ready(function() {
    $("#ta_1").keyup(function(event) {          
        var text1 = $("#ta_1").val();      
        var text2 = text1.replace("ik", "b");      
        $("#ta_2").val(text2);
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="ta_1"   rows="5" cols="28" ></textarea>
<textarea id="ta_2"   rows="5" cols="28"></textarea>

javascript 中没有 replaceAll,您必须使用 regular expressionglobal flag 才能做到这一点。

所以像下面这样写你的代码,

var text2 = text1.replace(/ik/g,"b");

你的完整代码是,

$(document).ready(function() {
    $("#ta_1").keyup(function(event) {          
        var text = $(this).val().replace(/ik/g,"b");
        $("#ta_2").val(text);
   });
});

DEMO

假设您的意思是要替换 textareaik 的所有实例,那么您可以使用设置了 g 全局标志的正则表达式。试试这个:

$(document).ready(function() {
    $("#ta_1").keyup(function(event) {       
        var text1 = $("#ta_1").val();      
        var text2 = text1.replace(/ik/g, 'b');      
        $("#ta_2").val(text2);
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="ta_1" rows="5" cols="28"></textarea>
<textarea id="ta_2" rows="5" cols="28"></textarea>