JavaScript字符串/整数比较我将客户端的一些参数存储在HTML中,然后需要将它们作为整数进行比较。不幸的是,我遇到了一个严重的错误,我无法解释。错误似乎是,我的JS将参数读入字符串而不是整数,导致我的整数比较失败。我已经生成了一个小的错误例子,我也无法解释。运行时,以下内容返回“true”:javascript:alert("2">"10")
4 回答

拉莫斯之舞
TA贡献1820条经验 获得超10个赞
'00100' < '1' // true
'00100' < 1 // false
function isInt(n) { return /^[+-]?\d+$/.test(n);}
var isInt = (function() { var re = /^[+-]?\d+$/; return function(n) { return re.test(n); }}());
var isInt = (function() { var re = /^[+-]?\d+$/; var re2 = /\.0+$/; return function(n) { return re.test((''+ n).replace(re2,'')); }}());
parseInt(2.9) == parseInt('002',10) == parseInt('2wewe')
if (isInt(a) && isInt(b)) { if (+a < +b) { // a and b are integers and a is less than b }}
Number(a); // liked by some because it's clear what is happening a * 1 // Not really obvious but it works, I don't like it

慕容森
TA贡献1853条经验 获得超18个赞
将数字与字符串等效项进行比较,而不使用 parseInt
console.log(Number('2') > Number('10'));console.log( ('2'/1) > ('10'/1) );var item = { id: 998 }, id = '998';var isEqual = (item.id.toString() === id.toString());isEqual;
添加回答
举报
0/150
提交
取消