2017-09-22 3 views
0

すべてのアルファベットとスペース、一重引用符とダッシュを受け入れる必要があります。唯一のアルファベットとスペースを受け入れテキストボックス内のすべてのアルファベット/空白/一重引用符/ダッシュを許可する方法

$('.firstName').bind('keyup blur', function() { 
    var node = $(this); 
    node.val(node.val().replace(/[^a-z\s]/gi, '')); 
}); 

私はこのスクリプトを持っています。今すぐシングルクォートとダッシュを追加する必要があります。

+2

なぜ追加しないのですか? '/ [^ a-z \ s ' - ]/gi'? –

+0

これで十分でしょうか? @WiktorStribiżew – Arka

+0

あなたは何を意味するのか分かりません。あなたはASCII文字と空白ではないすべての文字を削除すると言っていますが、今は '' 'や' ''以外の文字も削除したいと考えています。ですから、それを '[...]'に追加するのは論理的です。 –

答えて

0

これはあなたのために動作します:

$('.firstName').bind('keyup blur', function() { 
 
      var node = $(this); 
 

 
      node.val(node.val().replace(/[^a-z\s'-]/gi, '')); 
 

 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='text' class='firstName' />

これは、アルファベット、スペース、ダッシュ、および単一引用符ではないすべてのものに置き換えられます。

+0

私はこれを持っています Arka

+0

正規表現はこれで動作しないようです – Arka

+0

あなたは_Deprecated_メソッドを使用しているので、私の答えを確認してください。 –

0

としては、正規表現/[^a-z\s'-]/giが仕事をする上でのコメントを示唆していますが、使用入力を追跡するとき、それは、より効率的なので、私が代わりに他人keyup blurinputイベントの使用をお勧め:

$('.firstName').on('input', function() { 
    var node = $(this); 

    node.val(node.val().replace(/[^a-z\s'-]/gi, '')); 
}); 

NOTE :bind()メソッドは廃止されました。代わりにon()を使用してください。

これが役に立ちます。ここで

$('.firstName').on('input', function() { 
 
    var node = $(this); 
 

 
    node.val(node.val().replace(/[^a-z\s'-]/gi, '')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='text' class='firstName' />

0
^[a-zA-Z][a-zA-Z '-]*$ 

アルファベットで始まり、スペース、単一引用とダッシュ記号を含むことができ、正規表現です。

関連する問題