比较十六进制字符串都返回 false



我正在比较下面的十六进制字符串value

'0xC6b250Dd4dD3372C6602200C78D900818627eC9e'
'0xC6b250Dd4dD3372C6602200C78D900818627eC9e'
'0x570324fd11272F2F980AfeBf09D680aC9F136B1k'

用:

if(value === '0x570324fd11272f2f980afebf09d680ac9f136b1k');

为什么都返回 false?因为最后一个是相同的?

JavaScript 字符串比较区分大小写。您可以通过在与value.toLowerCase()进行比较之前转换为小写字符来规范化值。

例:

const values = ['0xC6b250Dd4dD3372C6602200C78D900818627eC9e', '0xC6b250Dd4dD3372C6602200C78D900818627eC9e', '0x570324fd11272F2F980AfeBf09D680aC9F136B1k'];
console.log(values.map(value => value.toLowerCase() === '0x570324fd11272f2f980afebf09d680ac9f136b1k'));

最新更新