2014-11-02 195 views
0

我有两个文本框。我想要做的是当我写一些东西在一个文本框中它应该被复制到另一个(我能够这样做)。但我的要求是如果我写任何其他东西,而不是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^& 1VE然后在第二个文本框的爱,应该被复制only.now如果我走的更远喜欢增加更多的LO^& 1VE C ** V然后在第二个文本框LOVE CV应该只有设备。任何人都可以告诉我该怎么做?这里做的

回答

2

使用正则表达式[^ 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>

+0

但它会取代第二个文本框中的任何内容。我希望每个字母和第一个文本框中写入的数字都是第二个文本box.According根据你的代码,如果我写任何东西它取代了早先的事情,我不想替换。让我解释一点点,假设我写LO ^&1VE,然后在第二个文本框LOVE应该只复制。现在如果我进一步想要添加更多的LO ^&1VE C ** V,那么在第二个文本框中,LOVE CV应该仅被复制。 – 2014-11-02 08:10:11

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

基本上这将检查每个字符跟随你的条件,然后如果它不把进去。

相关问题