javaScript 中比较数字字符串问题_JavaScript_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JavaScript > javaScript 中比较数字字符串问题

javaScript 中比较数字字符串问题

 2011/10/11 8:12:31  deng131  http://kevinpeng.iteye.com  我要评论(0)
  • 摘要:在实现前端页面排序功能过程中遇到的问题,由于自己的粗心导致了生产上问题。原本是通过js原生的sort方法排序,比较纯字符串数字大小。但是没有将纯字符串数字转换为数字就直接比较了。如:“13”与“126”比较的时候会返回true,但是我的本意是返回false.需要修改为parseInt("13",10)>parseInt("126",10)后再比较。但是这让我想起了在ruby中比较字符串,不是一起比较字符串大小,而是分别一个一个字符比较,如果有一个大于那么就返回
  • 标签:Java 问题 字符串 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

发表评论
用户名: 匿名