2017-04-23 6 views
0

ユーザーが何かを書くときに、2つ以上のスペースを連続して残すことがある場合、jQueryでこれを防ぐ方法がありますか?ユーザーがcontenteditableで入力するときにJQueryが複数入力を取り消す

例えば

:私は思う

Hi Dear, 

This is some text. 

Second text. 

Thirt text and.... 

Hi Dear, 






This is some text. 



Second text 




Thirt text and ..... 

だから我々は、複数のスペースは次のように行を削除する必要があります。私はこのようなユーザーの入力を許可したくない

正規表現を使ってjqueryキーアップ関数で行うことができます

$(document).ready(function() { 
    $("body").on("keyup", ".text", function() { 
     var text = $(".text"); 
     text = text.replace(/(\r\n|\r|\n){2}/g, '$1').replace(/(\r\n|\r|\n){3,}/g, '$1\n'); 
    }); 
}); 

これを行う方法はありますか?私はこれをPHPの正規表現で行うことができます。しかし、ユーザーがPHPを必要とせずにテキストを書くときにこれを行う方法はありますか?

私は、テキストを書くときに余分なスペースを許さないと言いたいと思います。

<div class="text" contenteditable="true" placeholder="User can write text here More than three sub-spaces will not be allowed. "></div> 
+0

提供したコードスニペットは問題ありません。おそらく、複数の「... $( "。text").html(text) '' 'を削除した後、contenteditableにテキストを挿入する必要があります。あなたが直面している問題は何ですか? – Santosh

+0

私はDEMOを更新しました。リンクはhttps://codepen.io/anon/pen/KmMbGqです。 – Santosh

答えて

0

それをこのような何か:

var lastKey = ''; 
$("#id").keypress(function(e){ 
    if(e.which == 13 && lastKey == 13) 
     e.preventDefault() 
    lastKey = e.which; 
}); 

をそれは連続した2がキーの押下を入力するかどうかを確認し、第二1を無視します。正規表現を使用するよりも速くて洗練されています。 textareaに、それは常に働くあなたが思うだろう方法、使用jqueryのvalを仕事とここにある、それはユーザーがあなたが をしたい場合は、またchangeを使用することができtextareaを残している1時間を発射イベントblurを使用しないjqueryのtextを使用して

0

作業コード

$('.text').on('blur' , function(){ 
     $(this).val($(this).val().replace(/\n\n+/g , "\n")) 
}) 
関連する問題