2014-11-02 417 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); 
} 

基本上這將檢查每個字符跟隨你的條件,然後如果它不把進去。

相關問題