2012-06-20 39 views
1

我想让这一点的JavaScript运行。我不断收到一个错误,指出:如何测试一个字符是数字,大写还是小写?

ThisChar.toUpperCase() is not a function 

我曾尝试使用jsfiddle.net,但似乎无法来解决这个错误。这是怎么回事?

// CREATE ARRAY OF CHARACTERS 
CharacterArray = ["1", "2", "3", "a", "b", "c", "D", "E", "F", "/", "+", ")"]; 

// TEST CHARACTERS 
function testCharacters() { 
    // GET ARRAY LEN 
    var CharacterArrayLen = CharacterArray.length; 
    // LOOP THROUGH ARRAY 
    for (i = 0; i < CharacterArrayLen; i++) { 
     // PARSE SINGLE CHARACTER 
     var ThisChar = CharacterArray.slice(i, i + 1); 
     if (!isNaN(ThisChar * 1)) { 
      alert(ThisChar + ' is numeric!'); 
     } else { 
      if (ThisChar == ThisChar.toUpperCase()) { 
       alert(ThisChar + ' is upper case true'); 
      } else if (ThisChar == ThisChar.toLowerCase()) { 
       alert(ThisChar + " is lower case"); 
      } else { 
       alert(ThisChar + " is unknown"); 
      } 
     } 
    } 
} 
testCharacters();​ 

回答

6

.slice总是返回一个数组。只需访问该元素:

var ThisChar = CharacterArray[i]; 

您不必乘以*1价值,传递给isNaN值将被隐式转换为数字:

!isNaN(ThisChar) 
+1

是的,就是这样。谢谢! –

相关问题