2013-09-04 17 views
12

長さが0のときにユーザーがスペースを入力できないようにするコードは次のとおりです。長さが0のときに、ユーザーがすべての特殊文字(a-z A-Z 0-9以外)を入力しないようにするにはどうすればよいですか?長さが0のときにユーザーがテキストボックスに特殊文字を入力しないようにするにはどうすればよいですか?

$('#DivisionName').bind('keypress', function(e) { 
    if($('#DivisionName').val().length == 0){ 
     if (e.which == 32){//space bar 
      e.preventDefault(); 
     } 
    } 
}); 

これはテキストボックスです。

<input type="text" id="DivisionName" /> 
+0

は – musefan

+0

AZ AZ以外の0-9 – Bittu

+0

任意の文字を「特殊文字」を定義するには、だから、あなたの質問にことを置く – musefan

答えて

14

文字と数字範囲(両端を含む)である:

  • 97から122(AZ)
  • 65から90(AZ)
  • 48から57(0-9)

これはe.whichと比較したものです。

if (e.which < 48 || 
    (e.which > 57 && e.which < 65) || 
    (e.which > 90 && e.which < 97) || 
    e.which > 122) { 
    e.preventDefault(); 
} 

あるいは、逆のロジックを使用して:

var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122); 
if (!valid) { 
    e.preventDefault(); 
} 

更新

たとえそうだとしても、あなたはまだ、正規表現を使用して、全体としてのフィールドの内容を検証することを望むかもしれません

if (/^[A-Z0-9]+$/i.test(value)) { 
    // it looks okay now 
} 

また、悪いものを置き換えてフィールドを修正してください。

var stripped = value.replace(/[^A-Z0-9]+/i, ''); 
+0

あなたは私に働くサンプルを教えてもらえますか? – Bittu

+1

既に比較コードがあることを知っていれば、単純な変更が必要です。それ自体は実用的な例です –

+1

私はサンプルコードは公正な要求だと思います。OPが邪魔になることはありませんが、答えがより有用なものになるからです。 – musefan

-1

文字列を検証するために正規表現を使用できます。 ^[a-zA-z0-9].*

よう 何かがここではJavaScript に正規表現のテストに関する記事です:http://www.w3schools.com/jsref/jsref_regexp_test.asp

そして、あなたも変更イベントではなくキー入力をバインドすることができます。

+0

唯一の問題は、文字列ではなくキープレスがあることです。彼がテキストエリアの内容を読み上げるようにコードを変更した場合、ランダムカーソルジャンプを避けるために、テキスト範囲を持つものを実装する必要があります。 –

+0

あなたは絶対に正しいです。 いずれにせよ、これは単純なフォーム検証のようなものです。 – Boranas

6

これは、あなたが探しているものです。

$('#DivisionName').bind('keypress', function(e) { 

    if($('#DivisionName').val().length == 0){ 
     var k = e.which; 
     var ok = k >= 65 && k <= 90 || // A-Z 
      k >= 97 && k <= 122 || // a-z 
      k >= 48 && k <= 57; // 0-9 

     if (!ok){ 
      e.preventDefault(); 
     } 
    } 
}); 

またはこちらをご覧ください:http://jsfiddle.net/D4dcg/

+1

shift +任意の数字の後ろに任意の数字が続いていますが、shiftを押しても簡単にこれが分かります – mymlyn

関連する問題