首页 > 解决方案 > 字符串比较返回 false

问题描述

为什么这总是返回错误?

var a = new String("17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site inspection><0.55><1,Mileage").trim();
var b = new String("17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site Inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site Inspection><0.55><1,Mileage").trim();
if (a === b){
   return true;
} else {
   return false;
}

是同一个字符串!

我已经看到使用 trim() 方法回答了其他问题,但它对我不起作用。就像在我看不到的字符串中的某个地方有隐藏的字符。但是当我测试长度时,它们都是 255 个字符长。

标签: javascriptstringcomparison

解决方案


是同一个字符串!

不,这不对。仔细看:

"17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site inspection><0.55><1,Mileage"
"17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site Inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site Inspection><0.55><1,Mileage"
                                                                                                ^                                                                                                                                    ^

这些不是隐藏字符,它们只是i/的不同情况I。发现有

for (let i=0; i<255; i++) if (a[i] != b[i]) console.log(i, a[i], b[i])

推荐阅读