写了一个在同一个prompt输入框内输入两个数字比较大小的函数,用substring判断字符是否为数字来区分两个数字,代码如下:
function bijiao(){
var x = prompt("输入两个数字(请用标点符号间隔)");//x为所有输入的长度
var len = x.length;//输入字符的长度
var str = '';//用来获取输入的数字
var x1 = 0;//每个数字起始下标
var i = 0;//字符下标
var z = 0;//用来判断数字个数
var arr = new Array();//用来承装比较的数字
for (x1; x1 < len;) {
i = x1;//从数字的起始位置开始
for (;x.substring(i, i+1)>0 && x.substring(i, i+1)<=9;i++) {//判断每个字符是否为0-9之间的数字
str = str + x.substring(i, i+1);
}
x1 = i + 1;//重置数字起始下标
if (str != '') {//读数字
document.write('输入的第' + 'z' + '个数字为:' + str + '。<br>');
arr[z] = Number(str);
str = '';
++z;
}
if (z == 2) {//当两个数字读取完毕之后跳出循环
break;
}
}
if (arr[0] > arr[1]) {
alert("最大值为" + arr[0]);
}else if (arr[0] < arr[1]){
alert("最大值为" + arr[1]);
}else{
alert(arr[0] + "和" + arr[1] + "相等");
}
}
bijiao();
其中有一个有意思的部分,当判断条件为“for (;x.substring(i, i+1)>0 && x.substring(i, i+1)<=9;i++)”时可以正常比较,只是识别不到用户输入的“0”;可是当改成“for (;x.substring(i, i+1)>=0 && x.substring(i, i+1)<=9;i++)”时,所有的浏览器都会刷新很久但出不来结果,怀疑是将“0”识别为“null”,因而导致崩溃,不知是否有大神知道原因
慕粉3769977
相关分类