2012-03-25 13 views
0

入力フィールドの検証をしようとしていて、それが特殊文字かどうかをチェックしたいのですが、JavaScriptの状態をASCII値で確認する方法は?

です。ASCII値で確認できますが、JavaScript言語ではどうなっているのかよくわかりません。

Cでは、すぐに配列の文字列で確認できます。

if (input < 4 && document.myTable.inputField.value[0] < 65) 

私はそれは、彼らがより少ない4つの文字を持っていると私は何もしない彼らに、他のエラーメッセージを表示しますyesの場合、それらは特殊文字ですだかどうかを確認します。

+1

"特殊文字"に含める内容は何ですか? – Dogbert

+0

任意の特殊文字はinputFieldで許されるべきではないので、 'Dec'が65より小さく、122より大きいものは許されないでください。azとAZのみが意味します..... – Ali

+2

すべての文字は独自の方法で特殊です。 –

答えて

1

:だからあなたの条件に変更することができます。入力フィールドがinputであると仮定すると、これはそれを行う方法になります。

var input = document.myTable.inputField.value; 
if (input.length < 4 && input.charCodeAt(0) < 65) { /* etc. */ } 
// examples charCodeAt 
'foo'.charCodeAt(0); //=> 102 
'-foo'.charCodeAt(0); //=> 45 
+0

私はちょうど 'charAt'についての記事を見つけました。私はここに戻ってきます。それはまさに私が求めていたものです。感謝!! – Ali

3

Cでは、ブルートフォースチェックが最もクリーンで簡単な方法です。 JavaScriptでは、そうではありません。

js> /^[A-Za-z]+$/.test('foo') 
true 
js> /^[A-Za-z]+$/.test('bar123') 
false 
+0

これはCとC++と比較して複雑です。 これをif文の条件でどうやって適用できますか?これを適用する方法を非常に混乱させます。 – Ali

+2

'true'または' false'を返す他の条件と同じようになります。 –

+0

1年後におかしい、私は自分自身の質問を見て、私はRegExについて知っていればあなたの質問は私が受け入れるだろうと思っていたことを見た:) – Ali

2

正規表現を使用できます。私はそれが読みやすいと思う。たとえば、(/a-z/gi).test(myString)は、myStringに文字以外の文字(大文字または小文字)が含まれている場合はtrueを返します。あなたが特定の位置のASCIIコードを決定するために、StringのcharCodeAt方法を使用することができます

if (input < 4 && !(/a-z/gi).test(document.myTable.inputField.value)) 
+0

正規表現を使用しない方法がありますか? – Ali

+0

はい。 'myString.charCodeAt(0)<65'という表現は、' myString'の最初の文字がASCIIテーブルの文字 'A'の前にある場合に真を返します。 '.charCodeAt()'と相補的な関数は 'fromCharCode'です。私の場合、このようになるのでhttps://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/String/fromCharCode – Diego

+0

を参照してください? document.myTable.inputField [0] <65 ' または私は何か誤解しましたか? – Ali

関連する問題