为什么这个功能不起作用

时间:2012-12-27 11:12:39

标签: javascript html

我想将字符串转换为整数。我知道有内置函数可以做到,但我仍然想知道为什么这个函数不起作用:
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>

谢谢。

3 个答案:

答案 0 :(得分:5)

如果第一个字符不是break ,则放弃1,如果不是2,则放弃

如果是1,那么它不是2而你break

您希望使用&&而不是||

答案 1 :(得分:1)

你有的东西总是如此:

If a!=3||a!=4

a可以拥有的任何值,这总是正确的,因此更多的术语

答案 2 :(得分:0)

你应该使用&amp;&amp;而不是||

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')