2016-04-04 11 views
0
function numbCheck() { 
// Declaring variables 
      var toCheck = prompt("Enter a string!"); 
      var numbCount = 0; 
      // For loop to cycle through toCheck and look for numbers 
      for (i = 0; i <= toCheck.length; i++) { 
       if (toCheck.charCodeAt(i) <= "9" && toCheck.charCodeAt(i) >= "0") { 
        numbCount++; 
       } 
      } 
      // If a number is found numbCount should be > 0 and the alert will go off 
      if (numbCount > 0) { 
       alert("You can't have a number in your name!"); 
      } 
     } 
     numbCheck(); 

私は問題が< = forループの "9"ビットにあると思うが、私は完全に間違っている可能性があります。誰にもアイデアはありますか?私の番号チェッカー機能が動作しません、なぜですか?

+0

数字を文字列として使用しているのはなぜですか?おそらくあなたがしたい: 'ifCheck.charCodeAt(i)= 9 && toCheck.charCodeAt(i)= 0){'? –

+0

@ PM77-1これはJavaScriptであり、C、C++などではありません。一重引用符と二重引用符は両方とも文字列です。 –

+0

なぜ正規表現を使用しないのですか?if(toCheck.match(/ \ d /)!== null){..' – Andy

答えて

1

Working JsBin

それはあなたがそうのようtoCheckのインデックスにアクセスする必要が

'< = "9"' ではありません: toCheck[i]:今

function numbCheck() { 
// Declaring variables 
      var toCheck = prompt("Enter a string!"); 
      var numbCount = 0; 
      // For loop to cycle through toCheck and look for numbers 
      for (i = 0; i <= toCheck.length; i++) { 
       if (toCheck[i] <= "9" && toCheck[i] >= "0") { 
        numbCount++; 
       } 
      } 
      // If a number is found numbCount should be > 0 and the alert will go off 
      if (numbCount > 0) { 
       alert("You can't have a number in your name!"); 
      } 
     } 
     numbCheck(); 

、他のコメンターとしてある数字が他の数字よりも大きいかどうかを調べようとしていますが、文字列を比較しています:

「asdf5」を渡します。ループ内で '5'を分離し、それを他の文字列と比較します:'5' <= '9'ここでは動作しますが、常に同じタイプを比較する必要があります。

(JS '9' == 9)がtrueであり、'9' === 9falseである。

あなたが扱っているタイプについて考えてみましょう。ここでは問題はありませんが、それは道のりを変えます!

+0

ありがとう!完璧に働いた! – ElementA

+0

問題なし!上記を念頭に置いて、歓迎してください! - 答えがあなたの好みに合っていれば、それを正しい答えとして選ぶことができ、私達は質問を閉じることができます。 – JordanHendrix

0

多分あなたは、このいずれかを試してみてくださいRegExpオブジェクト

/[0-9]/.test(toCheck) 
0

jsbin

を使用することができます

if (toCheck.charCodeAt(i) <= "9".charCodeAt(0) && toCheck.charCodeAt(i) >= "0".charCodeAt(0)) { 

とを、やってみたいです!

function numbCheck() { 
// Declaring variables 
      var toCheck = prompt("Enter a string!"); 
      var numbCount = 0; 
      // For loop to cycle through toCheck and look for numbers 
      for (i = 0; i <= toCheck.length; i++) { 
       console.log(toCheck.charCodeAt(i)); 
       if (toCheck.charCodeAt(i) <= "9".charCodeAt(0) && toCheck.charCodeAt(i) >= "0".charCodeAt(0)) { 
        numbCount++; 
       } 
      } 
      // If a number is found numbCount should be > 0 and the alert will go off 
      if (numbCount > 0) { 
       alert("You can't have a number in your name!"); 
      } 
     } 
     numbCheck(); 

UNICODEと比較したい場合は、UNICODE "0"と "9"も変更する必要があります。

+0

これはうまく動作しません。私は 'asdf4'を試しました。 – JordanHendrix

+0

申し訳ありませんが、私のリンクは間違っています。 [リンク](https://jsbin.com/guvuxukafa/edit?js,console)checkthis @Omarjmh – yongsup