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:

if(eval_r(hour_select_begin)>eval_r(hour_select_end)){

alert("开始时间不能大于结束时间");

return false;

}
修正方法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对象的一个实例。

时间: 2024-11-08 21:12:12

js,jquery的数字型字符串变量比较大小的相关文章

jsp中遇到Integer的方法valueOf()和parseInt()的区别.前者要求是对象类型,后者是数字型字符串

他们有本质区别,Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了. 而Integer.parseInt(String s)只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性 Integer.parseInt()把String 型转换为Int型, Integer.valueOf()把String 型转换为Integer

[小作品][JS][JQuery]求两个字符串的最大公共串

算法大概描述就是,分别用两个字符串作为横坐标和纵坐标建一个矩阵,遇到横竖字符相同的时候把这点的值设成1,否则设成零,最后矩阵中最长的不为零的对角线就是最大子字串. 例如:   m a c h i a 0 1 0 0 0 b 0 0 0 0 0 m 1 0 0 0 0 a 0 1 0 0 0 c 0 0 1 0 0 这样有点问题:建完矩阵还要去找最长对角线,麻烦. 解决方案是:相等时不只把矩阵元素设为“1”,而是设成它左上角的元素值加一. 例如:   m a c h i a 0 1 0 0 0 b

js jquery前台解析json字符串

一.js解析json字符串 eval()和JSON.parse() 对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,就是将该字符串放于eval()中执行一次.这种方式也适合以普通javascipt方式获取json对象,以下举例说明: var dataObj=eval("("+data+")");//转换为json对象 为什么eval这里要添加 "("+data+")&

js 将数字型 的字符串 转 数字 【整数 /浮点型数字】

1. js 提供了两种可以将 数字型 的字符串 转 数字 的方法 parseInt()和parseFloat(), parseInt() 是转成整数, 但 向下去整数 , parseFloat() 是转成浮点型 2. 使用方法一样 let a = parseInt(" 2.3"): // 结果是 a  = 2 // let b = parseFloat(" 2.3333"): // 结果是 b  = 2.3333 // //可设置有效小数位数 //保留两位小数 b.

python基础巩固(变量类型:字典、集合、元组、列表、数字、字符串)

Python 3 教程 菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html 在控制台DOS运行.py文件 先切换到.py文件所在目录 再输入python hello.py (输入python3 hello.py执行会报错,这里与菜鸟教程不同) 在Unix & Linux 平台安装 Python3 先下载Unix/Linux的源码压缩包 https://www.python.org/downloads/source/ 解压压缩包,并安

js数字、字符串、数组之间的转化

1.数组转字符串 var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 2.字符串转数组 var s = "abc,abcd,aaa"; ss = s.split(","); 3.数字转字符串toString var i = 10; var s = i.toString(); 4.字符串转数字 parseInt(字符串) parseInt("ssss999"); //错误 输

【美妙的Python之四】标准变量类型-数字与字符串

美妙的Python之Python标准变量类型 简而言之: Python 是能你无限惊喜的语言,与众不同.         1.数字:        Python支持四种数字变量类型: int(有符号整形) long(长整形) float(浮点型) complex(复数)        数字变量用于存储数值,数字对象是不可改变对象,因此改变数字变量的值会分配一个新的对象.       如下示意图:          变量相当于便签,a=3则相当于将a便签贴到值为3的数字对象上,这样便可以通过便签a

关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存

#include <stdio.h> #include <iostream> #include<math.h> using namespace std; int main() { //声明字符型数组和指针变量 char str[10]; char *strip=str; //输入输出 cout<<"str="; cin>>str; //用字符数组输入字符串 cout<<"str="<<

js/jquery获取当前页面URL地址并判断URL字符串中是否包含某个具体值

js/jquery获取当前页面URL地址并判断URL字符串中是否包含某个具体值本文介绍jquery/js获取当前页面url地址的方法,在jquery与js中获取当前页面url方法是一样的,因为jquery没有自己相关的函数,使用js 的windows方法来获取,相关方法如下: window.location.pathname //设置或获取对象指定的文件名或路径 window.location.href //设置或获取整个 URL 为字符串 window.location.port //设置或获