首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javaScript 中比较数字字符串有关问题

2012-08-29 
javaScript 中比较数字字符串问题在实现前端页面排序功能过程中遇到的问题,由于自己的粗心导致了生产上问

javaScript 中比较数字字符串问题
在实现前端页面排序功能过程中遇到的问题,由于自己的粗心导致了生产上问题。

原本是通过js原生的sort方法排序,比较纯字符串数字大小。但是没有将纯字符串数字转换为数字就直接比较了。

如:“13” 与 “126”比较的时候会返回true,但是我的本意是返回false.需要修改为parseInt("13",10) > parseInt("126",10)后再比较。

但是这让我想起了在ruby中比较字符串,不是一起比较字符串大小,而是分别一个一个字符比较,如果有一个大于那么就返回。

那么“13” 与 “126”比较为什么前者大于后者呐?这时候让我想起了每个字符转为unicode后在比较。

在Unicode值和字符串中的字符间转换,要获得字符的Unicode编码,可以使用string.charCodeAt(index)方法,反之String.fromCharCode()方法。

通过比较("1").charCodeAt(0)返回49,("3").charCodeAt(0)返回51,("2").charCodeAt(0)返回50,这也就是为什么“13” > “126”。以后在比较字符串时候需要注意这个问题。

参考:
http://www.cnblogs.com/xuebin/articles/1296837.html


热点排行