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

时间:2014-11-02 07:37:12

标签: javascript jquery html

我有两个文本框。我想要做的是当我在一个文本框中写东西时应该将其复制到另一个(我能够这样做)。但是我的要求是如果我写了别的东西而不是az或AZ或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 ^&amp; 1VE然后在第二个文本框中LOVE应该只复制。如果我更进一步喜欢添加更多LO ^&amp; 1VE C ** V然后在第二个文本框LOVE CV应该只是appaer。任何人都可以建议我怎么做?

2 个答案:

答案 0 :(得分:2)

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

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

<强>演示

&#13;
&#13;
function showRelated(e){
    $("#src2").val( $("#src1").val().replace(/[^a-zA-Z0-9]/g,"") );
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

相当野蛮的做法,但这里就是

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);
}

基本上,这将检查每个字符串是否符合您的标准,然后将其放入其中。