-1

文字列を整数に変換したい。それを行うための組み込み関数があることは知っていますが、それでもこの関数が機能しない理由を知りたいです:
JS: -名前を付けて保存js1.js

function atoi(str)
 {
  l = str.length;
  s2 = "0"
  for(i=0;i<l;i++)
   {
    if(str.charAt(i) != '1' || str.charAt(i) != '2' || str.charAt(i) != '3' || str.charAt(i) != '4' || str.charAt(i) != '5' || str.charAt(i) != '6' || str.charAt(i) != '7' || str.charAt(i) != '8' || str.charAt(i) != '9' || str.charAt(i) != '0')
     {
        break;
     }
     s2 = s2.concat(str.charAt(i));
   }
  return Number(s2); 
 }

HTML:

<html>
 <head>
  <script src="js1.js">
  </script>
  <Script>
    function printnum()
     {
      n = atoi(document.getElementById('numtxt').value)
      document.write(n);
     }
  </script>
  <title>
    Test JS1 functions
  </title>
 </head>
 <body>
  <input type="text" id="numtxt">
  <input type="button" onclick="printnum()">
 </body>
</html>

ありがとうございました。

4

3 に答える 3

5

あなたはあきらめbreak、最初の文字がaでない場合、1 またはそうでない場合2など。

もしそうなら、そう1ではなく2、あなたですbreak

&&notを使用したい||

于 2012-12-27T11:14:37.823 に答える
1

これまたは-あなたが持っているものは常に真実です:

If a!=3||a!=4

aが持つことができる任意の値、これは常に真実であるため、より多くの用語があります

于 2012-12-27T11:17:36.907 に答える
0

||の代わりに&&を使用する必要があります

if(str.charAt(i) != '1' && str.charAt(i) != '2' && 
str.charAt(i) != '3' && str.charAt(i) != '4' &&
str.charAt(i) != '5' && str.charAt(i) != '6' &&
str.charAt(i) != '7' && str.charAt(i) != '8' &&
str.charAt(i) != '9' && str.charAt(i) != '0')
于 2012-12-27T11:24:34.190 に答える