-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如果第一个字符不是 a1 或者不是 a2等等。

如果是,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 回答