我想将字符串转换为整数。我知道有内置函数可以做到,但我仍然想知道为什么这个函数不起作用:
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>
谢谢。
答案 0 :(得分:5)
如果第一个字符不是break
,则放弃1
,如果不是2
,则放弃1>
如果是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')