2016-04-09 29 views
3

解決するには次の問題があります。

問題単語JavaScript switch文で大文字と小文字を区別できない

として5桁の数字(0-9)を要求するスクリプトを書き、入力に応じて、(英語で)単語として数字を示しています。 無効な入力の場合は「数字ではありません」を表示します。 switchステートメントを使用します。 例:

<input type="text" id="textInput"> 
<button id="react">Check</button> 
<p id="result"></p> 

私はJavaScript:

digit result 
2  two 
1  one 
0  zero 
5  five 
-0.1 not a digit 
hi  not a digit 
9  nine 
10  not a digit 

=

は、ここに私のJavaScriptとHTML HTMLだ

document.addEventListener("DOMContentLoaded",function(){ 

    var input = document.getElementById('textInput'); 
    var button = document.getElementById('react'); 
    var result = document.getElementById('result'); 


    button.addEventListener('click',function(){ 

     switch (input.value) { 
      case 0: 
       result.innerHTML = 'zero'; 
       break; 
      case 1: 
       result.innerHTML = 'one'; 
       break; 
      case 2: 
       result.innerHTML = 'two'; 
       break; 
      case 3: 
       result.innerHTML = 'three'; 
       break; 
      case 4: 
       result.innerHTML = 'four'; 
       break; 
      case 5: 
       result.innerHTML = 'five'; 
       break; 
      case 6: 
       result.innerHTML = 'Six'; 
       break; 
      case 7: 
       result.innerHTML = 'Seven'; 
       break; 
      case 8: 
       result.innerHTML = 'Eight'; 
       break; 
      case 9: 
       result.innerHTML = 'Nine'; 
       break; 
      default: 
       result.innerHTML = 'not a digit'; 
       break; 
     } 

    }); 

}); 

問題は、私はから番号を入力すると0-9には、デフォルトのステートメントが表示されます。

+1

はhttp://stackoverflow.com/questions/6989902/is-it-safe-to-assume-strict-comparison-in-a-javascript-switch-statement –

答えて

7

valueは文字列形式です。 switch文は(if文とは違って)タイプ

switch(+input.value) { 

OR

switch(parseInt(input.value, 10)) { 

を強要していないので、私はまた、配列やオブジェクトを使用することをお勧めします数に変換します。

var arr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; 

result.innerHTML = arr[+input.value] || 'Not a Digit'; 
+0

を参照してくださいinput.valueは常にあるん文字列? –

+1

はい、それはテキストボックスに入力するものです –

+0

に設定すると、switch文は数値に解析することなく動作しますか? –

関連する問題