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;
参考技术AparseInt(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_
如果是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如何判断输入的数据是整数还是小数的主要内容,如果未能解决你的问题,请参考以下文章