js如何判断输入的数据是整数还是小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何判断输入的数据是整数还是小数相关的知识,希望对你有一定的参考价值。

可以转换为整数parseInt(number)和原来的数比较。

也可以转换成字符串判断。

var str = number+"";

if(str.indexOf(".")==-1)

alert("整数")

else

alert("小数");

扩展资料:

判断是否数字

function isNumber(str)

var n = Number(str);

if (!isNaN(n))

return true;

else

return false;

 

判断是否对象

function isObj(obj)

if(typeof obj=="object")

return true;

else

return false;


判断是否为空

function emptyFun(obj)

var obj=obj;

if(obj==""||obj==null||obj==undefined||obj=="null"||obj=="undefined")

return true;

else

return false;


获取地址栏参数

function GetQueryString(name)

var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");

var r = window.location.search.substr(1).match(reg);

if(r!=null)return  unescape(r[2]); return null;

参考技术A

parseInt(number)==number

如果是true,number就是整数,否则不是整数。

测试:

var number=123.456

if(parseInt(number)==number)alert('是整数');

else alert('不是整数')

拓展资料:

javascript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 

JavaScript程序是由若干语句组成的,语句是编写程序的指令。JavaScript提供了完整的基本编程语句,它们是:

赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、do...while循环语句、break循环中止语句、continue循环中断语句、with语句、try…catch语句、if语句(if..else,if…else if…)。

参考资料:

百度百科 词条 javascript_

参考技术B parseInt(number)==number
如果是true,number就是整数,否则不是整数
测试:
var number=123.456
if(parseInt(number)==number)alert('是整数');
else alert('不是整数')本回答被提问者和网友采纳
参考技术C 可以转换为整数parseInt(number)和原来的数比较
也可以转换成字符串判断有木有小数点
var str = number+"";
if(str.indexOf(".")==-1)
alert("整数")

else
alert("小数");

参考技术D function check(num)
var arr = /^-?(?:0|[1-9]\d+)(\.\d+)?$/.exec(num);
if(arr)
if(arr[1])
alert('小数');

else
alert('整数');


else
alert('非正常数字');


check("10.5");

关于输入价格问题,即输入数字大于0的数字

问题前提:

 当输入价格的时候,往往是不清楚是整数还是小数,想最后是当用户输入是整数的时候就自动变为整数,输入小数变为小数,而且价格是要求是大于0的数字, 这样才合理,下面是我的尝试,

                   用正则表达式

1.开始的时候写了一个能够判断为整数的方法

/**
* 判断是否为大于0的整数
*
* @param str
* @return
*/
public static double isInteger(String str) {
double result;
// Pattern pattern = Pattern.compile("^1[-\\+]?[\\d]*$");
Pattern pattern = Pattern.compile("^[1-9][\\d]*$");

if (!pattern.matcher(str).matches()) {
System.out.println("你输入的不是数字或不合法,请重新输入大于0的数字!");
Scanner sc = new Scanner(System.in);
result = isInteger(sc.next());
} else {
result = Double.parseDouble(str);
}

return result;
}

还行,能够应付一些各种不和发的输入

2.当加上了这个能够判断的小数的

public static double isData(String str) {
  double result = 0;
  Scanner sc =new Scanner(System.in);
  Pattern pattern = Pattern.compile("^[1-9][\\d]*$");
  Pattern pattern2 = Pattern.compile("^[0-9]+.*[0-9]*");
  if(".".equals(str)){
    System.out.println("你输入的不是数字或不合法,请重新输入大于0的数字!");
  }else
  if (!pattern.matcher(str).matches()){
    if (!pattern2.matcher(str).matches()){  
      System.out.println("你输入的不是数字或不合法,请重新输入大于0的数字!");
       result = isData(sc.next());
    }else{
      result = Double.parseDouble(str);
    }
  }else{
    result = Integer.parseInt(str);
  }

  return result;
}

上面看上去还过的去,但是还是不行

特别是输入23-2 或22\22 ,就挂了

 3.最后字网上荡一个

//采用正则表达式的方式来判断一个字符串是否为数字,这种方式判断面比较全
//可以判断正负、整数小数
Boolean strResult = str.matches("-?[0-9]+.*[0-9]*");
if(strResult == true) {
System.out.println("Is Number!");
} else {
System.out.println("Is not Number!");
}

 

对于这个问题,我最终选则了  java的自带方方法

public static void main(String[] args) {
  String a="null";
  isDilg();
}
/**
* 判断输入一个数字为大于0的整数或小数
*/
public static void isDilg(){
  int i=0;
  Double d = null;
  System.out.println("\n sdf");
  Scanner sc =new Scanner(System.in);
  do{
    int a=-2;
    if(!sc.hasNextInt()){
    if(!sc.hasNextDouble()){
      System.out.println("------------");
      System.out.println("你输入的的不合法,请重新输入!");
      isDilg();
    }else{
      d=sc.nextDouble();
      if(d>0){
      System.out.println(d);
    }else{
      System.out.println("你输入的的不合法,请重新输入!");
      isDilg();
    }
   }
  }else{
    i=sc.nextInt();
    if(i>0){
      System.out.println(i);
    }else{
      System.out.println("你输入的的不合法,请重新输入!");
      isDilg();
    }
   }
  }while(true);
}

 

不错,还行,没有搞死,还是人家java方法好用,这个确实对于一个不是正则表达式不太会用的,而且考虑不全的的同学,

还是用 java  API 简单!

 

以上是关于js如何判断输入的数据是整数还是小数的主要内容,如果未能解决你的问题,请参考以下文章

js判断输入的数字是不是含有小数

js正则表达式 判断输入框是不是为正整数或者正整数保留两位小数

java 判断整数还是小数

js验证文本框只能输入正整数或带一位小数的数,该怎么写呢?

求JS的判断输入数字必须为正整数的正则表达式

js中如何判断一个8位数是不是为日期