为了账号安全,请及时绑定邮箱和手机立即绑定

求js如何不用正则就能判断文本框输入内容为数字

function count(){

    //获取第一个输入框的值

    var sum1 = document.getElementById('txt1').value;

//获取第二个输入框的值

    var sum2 = document.getElementById('txt2').value;

//获取选择框的值

    var selVal = document.getElementById('select').value;

    //获取结果文本框对象的值

    var fruit = document.getElementById('fruit');

    //存储结果的变量

    var result = "";

    //判断第一个/第二个文本框内容为空就弹出提示框,并退出整个函数。

    if( sum1 =="" || sum2 =="" ){

        alert('文本框没有输入数字,不能计算。')

        fruit.value = '';

        return

    }

    

//获取通过下拉框来选择的值来改变加减乘除的运算法则

    switch(selVal){

        case '+':

        result = parseFloat(sum1) + parseFloat(sum2);

        break;

        case '-':

        result = parseFloat(sum1) - parseFloat(sum2);

        break;

        case '*':

        result = parseFloat(sum1) * parseFloat(sum2);

        break;

        default:

        result = parseFloat(sum1) / parseFloat(sum2);

    }

    //设置结果输入框的值 

        fruit.value = result;

   }


我只实现了判断文本框内容为空会弹出提示框,请问有没有不用正则就能判断文本框输入内容为数字的方法?

正在回答

2 回答

题主可以用typeof 运算符来返回一个用来表示表达式的数据类型的字符串。

typeof[()expression[]] ;

expression 参数是需要查找类型信息的任意表达式。

说明
typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."

typeof 语法中的圆括号是可选项

举个例子:

function aFunction(iNum1)
 {   
      if (typeof iNum1 == "number" )
      {   
         alert("number");   
      }
   if ( typeof iNum1 == "string")
   {        
        alert("string");   
   }
 }

希望对你有用。

1 回复 有任何疑惑可以回复我~
#1

唯有当下 提问者

你说的这个方法我试了后不管输入文本框是否是数字都会弹出alert("string");提示框,可能是我哪里写错了。我换了下面这种方法才实现判断文字效果,但是我不知道这种方法有什么缺陷? if(oTxt1 == '' || oTxt2 == ''){ alert('文本框没有输入内容!') return }else if(!isNaN(oTxt1,oTxt2)) { fruit.value = result; }else{ alert('你输入的不是数字'); return }
2016-06-17 回复 有任何疑惑可以回复我~

input 输入文本框获取的值都是string 类型  你可以用parseInt  或者 parseFloat 转成 number 类型  或者设置input  type = "number"

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求js如何不用正则就能判断文本框输入内容为数字

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信