js,jquery的数字型字符串变量比较大小
转:http://blog.csdn.net/dxnn520/article/details/8267173
var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大于十就会出错
例:
1 var hour_select_begin=$('#hour_select_begin option:selected').text(); 2 3 var hour_select_end=$('#hour_select_end option:selected').text(); 4 5 if(hour_select_begin>hour_select_end){ 6 7 alert("开始时间不能大于结束时间"); 8 9 return false; 10 11 }
这时如果 hour_select_begin>=10 则判断会有问题;
修正方法1:
修正方法2:
将String转为number类型: hour_select_begin=hour_select_begin-0;
hour_select_begin=hour_select_end -0;
补充:
js 字符串转换数字
方法主要有三种
转换函数、强制类型转换、利用js变量弱类型转换。
1. 转换函数:
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。
一些示例如下:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。
下面是使用parseFloat()方法的示例:
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
2. 强制类型转换
还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
可以用下面的代码段测试Boolean型的强制类型转换。
Boolean(""); //false – empty string
Boolean("hi"); //true – non-empty string
Boolean(100); //true – non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true – object
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:
用 法 结 果
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
最后一种强制类型转换方法String()是最简单的,示例如下:
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won’t work, causes an error
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的
转换成数字
ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat()。
注意:只有对String类型(Number除外)调用这些方法,才能正确运行对其他类型返回的都是NaN。
例如:
Js代码
var iNum1 = parseInt(“1234blue”);//returns 1234 var iNum2 = parseInt(“oxA”); //returns 10 var iNum3 = parseInt(“22.5″); //returns 22 var iNum4 = parseInt(“blue”); //returns NaN
以下其他类型转换
一、类型转换
1.转换成字串
ECMAScript的Boolean值、数字和字串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。
如:
Js代码
var sColor = “blue”;
alert(sColor.length);//outputs “4″
总而言之,3种主要的原始值Boolean值、数字和字串都有toString()方法。ECMAScript定义的所有对象都有toString()方法,无论它是伪对象,还是真的对象。
Boolean型的toString()方法只是输出”true”或”false”,结果由变量的值决定:
Js代码
var bFound = false;
alert(bFound.toString());//outputs “false”
Number类型的toString()方法比较特殊,它有两种模式,即默认模式和基模式,采用默认模式,toString()方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学记数法)。
Js代码
var iNum1 = 10; var fNum2 = 10.0; alert(iNum1.toString()); //outputs “10″ alert(fNum2.toString()); //outputs “10″
采用Number类型的toString()方法的基模式,可以用不同的基(进制基数)输出数字。
Js代码
var iNum = 10; alert(iNum.toString(2)); //outputs “1010″ alert(iNum.toString(8)); //outputs “12″ alert(iNum.toString(16)); //outputs “A”
2.转换成数字
ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat()。
注意:只有对String类型(Number除外)调用这些方法,才能正确运行对其他类型返回的都是NaN。
例如:
Js代码
var iNum1 = parseInt(“1234blue”);//returns 1234 var iNum2 = parseInt(“oxA”); //returns 10 var iNum3 = parseInt(“22.5″); //returns 22 var iNum4 = parseInt(“blue”); //returns NaN
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或者其他任何进制的字符串转换成十进制整数。第二个参数指定按哪一种进制来解析。
Js代码
var iNum1 = parseInt(“AF”,16);// returns 175 var iNum2 = parseInt(“10″,2); // returns 2 var iNum3 = parseInt(“10″,8); //returns 8 var iNum4 = parseInt(“10″,10); //returns 10
说明:如果十进制数包含前导0,那么最好采用基数10,否则得到的是八进制的值。
Js代码
var iNum1 = parseInt(“010″); // returns 8 var iNum2 = parseInt(“010″,8); //returns 8 var iNum3 = parseInt(“010″,10);//returns 10
parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前 的字串转换成数字。对于这个方法来说,第一个出现的小数点是有效字符。如果用两个小数点,第二个小数点将被看作无效的。使用该方法的另一个不同之处在于, 字串必须以十进制形式表示浮点数。
Js代码
var fNum1 = parseFloat(“1234blue”); //returns 1234.0 var fNum2 = parseFloat(“0xA”); //returns NaN var fNum3 = parseFloat(“22.5″); //returns 22.5 var fNum4 = parseFloat(“22.34.5″);//returns 22.34 var fNum5 = parseFloat(“0908″);//returns NaN var fNum6 = parseFloat(“blue”);//returns NaN
3.强制类型转换
ECMAScript中可用的3种强制类型转换如下:
(1).Boolean(value)
把给定的值转换成Boolean型。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
如:
Js代码
var b1 = Boolean(“”); // false; var b2 = Boolean(“hi”);//true var b3 = Boolean(100);//true var b4 = Boolean(null);//false var b5 = Boolean(0);//false var b6 = Boolean(new Object());//true
(2).Number(value)
把给定的值转换成数字(可以是整数或浮点数)。
还记得parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此”4.5.6″将被转换为”4.5″。用 Number()进行强制类型转换,”4.5.6″将返回NaN,因为整个字符串值不能转换成数字。如果字符串能被完整地转换,Number()将判断是 调用parseInt()方法还是调用parseFloat()方法。
如:
Js代码
Number(false);//0 Number(true);//1 Number(undefined);//NaN Number(null);//0 Number(“5.5″);//5.5 Number(“56″);//56 Number(“5.6.7″);//NaN Number(new Object());//NaN Number(100);//100
(3).String(value)
把给定的值转换成字串。
与调用toString()方法的唯一不同之处在于,对null或undefined值强制类型转换可以生成字符串而不引发错误:
Js代码
var s1 = String(null);//”null” var oNull = null; var s2 = oNull.toString();//causes an error
二、引用类型
引用类型通常叫作类(class),也就是说,遇到引用值时,所处理的就是对象。ECMAScript定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。
1.Object类
ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其他类中(被覆盖)。
Object类的属性:
(1).Constructor—-对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。
(2).Prototype—-对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。 一、类型转换
1.转换成字串
ECMAScript的Boolean值、数字和字串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。
如:
Js代码
var sColor = “blue”; alert(sColor.length);//outputs “4″
总而言之,3种主要的原始值Boolean值、数字和字串都有toString()方法。ECMAScript定义的所有对象都有toString()方法,无论它是伪对象,还是真的对象。
Boolean型的toString()方法只是输出”true”或”false”,结果由变量的值决定:
Js代码
var bFound = false; alert(bFound.toString());//outputs “false”
Number类型的toString()方法比较特殊,它有两种模式,即默认模式和基模式,采用默认模式,toString()方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学记数法)。
Js代码var iNum1 = 10; var fNum2 = 10.0; alert(iNum1.toString()); //outputs “10″ alert(fNum2.toString()); //outputs “10″
采用Number类型的toString()方法的基模式,可以用不同的基(进制基数)输出数字。
Js代码var iNum = 10; alert(iNum.toString(2)); //outputs “1010″ alert(iNum.toString(8)); //outputs “12″ alert(iNum.toString(16)); //outputs “A”
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或者其他任何进制的字符串转换成十进制整数。第二个参数指定按哪一种进制来解析。
Js代码var iNum1 = parseInt(“AF”,16);// returns 175 var iNum2 = parseInt(“10″,2); // returns 2 var iNum3 = parseInt(“10″,8); //returns 8 var iNum4 = parseInt(“10″,10); //returns 10
说明:如果十进制数包含前导0,那么最好采用基数10,否则得到的是八进制的值。
Js代码var iNum1 = parseInt(“010″); // returns 8 var iNum2 = parseInt(“010″,8); //returns 8 var iNum3 = parseInt(“010″,10);//returns 10
parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前 的字串转换成数字。对于这个方法来说,第一个出现的小数点是有效字符。如果用两个小数点,第二个小数点将被看作无效的。使用该方法的另一个不同之处在于, 字串必须以十进制形式表示浮点数。
Js代码var fNum1 = parseFloat(“1234blue”); //returns 1234.0 var fNum2 = parseFloat(“0xA”); //returns NaN var fNum3 = parseFloat(“22.5″); //returns 22.5 var fNum4 = parseFloat(“22.34.5″);//returns 22.34 var fNum5 = parseFloat(“0908″);//returns NaN var fNum6 = parseFloat(“blue”);//returns NaN
3.强制类型转换
ECMAScript中可用的3种强制类型转换如下:
(1).Boolean(value)
把给定的值转换成Boolean型。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
如:
Js代码var b1 = Boolean(“”); // false; var b2 = Boolean(“hi”);//true var b3 = Boolean(100);//true var b4 = Boolean(null);//false var b5 = Boolean(0);//false var b6 = Boolean(new Object());//true
(2).Number(value)
把给定的值转换成数字(可以是整数或浮点数)。
还记得parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此”4.5.6″将被转换为”4.5″。用 Number()进行强制类型转换,”4.5.6″将返回NaN,因为整个字符串值不能转换成数字。如果字符串能被完整地转换,Number()将判断是 调用parseInt()方法还是调用parseFloat()方法。
如:
Js代码Number(false);//0 Number(true);//1 Number(undefined);//NaN Number(null);//0 Number(“5.5″);//5.5 Number(“56″);//56 Number(“5.6.7″);//NaN Number(new Object());//NaN Number(100);//100
(3).String(value)
把给定的值转换成字串。
与调用toString()方法的唯一不同之处在于,对null或undefined值强制类型转换可以生成字符串而不引发错误:
Js代码
var s1 = String(null);//”null” var oNull = null; var s2 = oNull.toString();//causes an error
二、引用类型
引用类型通常叫作类(class),也就是说,遇到引用值时,所处理的就是对象。ECMAScript定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。
1.Object类
ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其他类中(被覆盖)。
Object类的属性:
(1).Constructor—-对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。
(2).Prototype—-对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。
转载于:https://www.cnblogs.com/kuiyeit/p/4793764.html
js,jquery的数字型字符串变量比较大小相关推荐
- java科学计数法转换为数字型字符串
很多童鞋遇到过将科学技术发转换为数字型字符串的问题,一般通过BigDecimal来转换,但这样变量为科学计数法的可以正常转换,但变量为正常类型就会出现问题(会出现很长的数值),为保证科学计数法和普通数 ...
- pandas怎么去除nan_pandas缺失值处理之——如何消去Nan值对数字型字符串数据类型的影响,让数字型字符串保持原始str类型,而不会自动变为float类型?...
在利用pandas处理表格时,往往有时我们用表格做的测试用例往往会设计考一些必填项*故意赋值为空(代表不输入)的测试用例, 比如说我们的手机号.身份证号码.社会统一信用代码等都是数字型字符串.如下所示 ...
- c++ 以逗号或者其他符号分割中英文字符串和数字型字符串
目录 1. 数字型字符串 2. 分割数字型或者中英文字符串型的字符串 1. 数字型字符串 以逗号或者其他符号,分割数字型(同时支持int.double.float)字符串,并保存到vector数组中. ...
- 实现数字型字符串的加法运算
实现数字型字符串的加法运算 如输入字符串num1="1234", num2="234",输出"1468";num1="1234&q ...
- HTML学习9 JS 数字和字符串 变量的类型 运算符和表达式 布尔值和关系运算符、逻辑运算符
JavaScript简介 1.1 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验. 简单列出几个JavaScript能够制作的页面效果,它能干什么: 轮播图 ...
- js 判断是不是数字||判断字符串是不是数字(正则表达式)
js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 1 //判断是不是一个数字 或者 一个字符串里全是数字 2 isNumber (value) { 3 if (value ...
- 返回相同宽度数字型字符串
/**返回相同闊度數字型字串. 例: function1("000000") => "000001" function1(&q ...
- 给定两个很长的数字型字符串,并对它们进行加法运算,注意不是字符串拼接
这加数的长度(1520位,940字节),如果用整型来保存,那会直接报错,因为整型才4字节,32位.下面给出被加数及运算结果. 加数 1234567812345678123456781234567812 ...
- 数字型字符串万位加万字_把整万的数改写成用万作单位的数时,将万位后面的4个0去掉,添上一个万字,中间用什么连结...
展开全部 将万位后面的4个0去掉,添上一个万字,中间不需要用什么连接这个62616964757a686964616fe58685e5aeb931333431363534数. 万:代表的是10的4次方( ...
- js的数据类型--数字
近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象.所以从这篇文章开始,后面都是关于原生js的一些内容. 这篇文章,我们具体介绍一下js的数据类型其中一种. j ...
最新文章
- 元素节点、属性节点、文本节点 的节点属性
- 小型云台用的是什么电机_盘一下目前国内主流的电动汽车都用什么电机
- OAM v1alpha2 新版:平衡标准与可扩展性
- 学web前端开发有前途吗
- 使用Spring Integration聚合异步结果
- 博弈论(2)DP/记忆化搜索
- 【挨踢人物传】tao61:做一个许三多式的IT攻城狮(第2期)
- 使用C++实现二叉搜索树的数据结构
- 如何测试网站服务器mysql数据库连接,如何测试网站服务器mysql数据库
- chrome 中的console 下无法使用jquery选择器
- 图解设计模式-Flyweight模式
- 期刊论文公式编号、居中技巧
- 农历阳历转换 java_Java编程实例:Java版农历和阳历转换源码
- Codeforces Round #459 (Div. 1) B. MADMAX(博弈+DP+记忆化搜索)
- 笔记本双显卡,NVIDA驱动,Manjaro 双屏
- 设计师都在看的全球设计网站,你居然还不知道!
- Golang iota踩坑
- Adam优化算法中的指数移动平均
- 【转】互联网产品经理常用软件及工作平台
- AES 解密报错:Given final block not properly padded. Such issues can arise if a bad key is used dur
热门文章
- 给创业者们推荐一个好的工具
- 感恩节,Google 翻译给大家送礼物啦!
- python语言命名规则的是()_python语言命名规则是什么?
- *第二周*数据结构实践项目一【交换】
- RESTful风格编程
- 廖雪峰Java2面向对象编程-5包和classpath-4classpath和jar
- for each in for in for of
- KEYCODE_DPAD_CENTER 和 KEYCODE_ENTER
- [HDOJ5734]Acperience(数学,公式推导)
- LA 4794 状态DP+子集枚举