将文本从一个文本框复制到另一个,但有一些限制

Copy text fom one textbox to another with some restriction

本文关键字:文本 另一个 一个 复制      更新时间:2023-09-26

我有两个文本框。我想做的是,当我在一个文本框中写东西时,它应该复制到另一个(我可以这样做)。但我的要求是,如果我写任何其他东西,而不是a-z、a-z或0-9,那么它不应该复制到第二个文本框。我的html

<textarea name="source" id="src1" cols="150" rows="20"   onkeyup="showRelated(event)">
<textarea name="source2" id="src2" cols="150" rows="20" >

我的js

function showRelated(e) {
        $("#src2").val($("#src1").val()) ;
       }

让我再解释一下,假设我写LO^&1VE,那么在第二个文本框中,LOVE应该只被复制。现在,如果我更喜欢添加更多的LO^&1VE C**V,则在第二个文本框中,LOVE CV应仅适用。有人能建议我怎么做吗?

使用正则表达式[^a-zA-Z0-9]检查或替换非字母数字的字符

function showRelated(){
    $("#src2").val( $("src1").val().replace(/[^a-zA-Z0-9]/g,"") );
}

演示

function showRelated(e){
    $("#src2").val( $("#src1").val().replace(/[^a-zA-Z0-9]/g,"") );
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="src1" onkeyup="showRelated(event);"></textarea>
<textarea id="src2"></textarea>

这是一种相当残忍的方式,但

function showRelated(e) {
    var text=$("#src1").val().split("");
    var pattern=/^[a-zA-Z0-9]*$/
    var nStr='';
    for (var i=0;i<text.length;i++) {
        if (pattern.test(text[i])) {
            nStr+=text[i];
        }
    }
    $("#src2").val(nStr);
}

基本上,这将检查每个字符是否符合您的标准,如果符合,则将其放入。

相关文章: