JS相同的字符串被判断为不相等的原因

今天在写js的时候,遇到一个奇怪的问题,明明两个字符串相同,console打印出来也一样,首尾都没有空格,typeof的结果都是string。
可是用a==b却判断为不相等 
后来在网上查了资料,得知可能是字符串里面有其他特殊字符,导致两个字符串肉眼看上去没有区别,但是用encodeURIComponent()处理后可能不一样。

我用encodeURIComponent()把两个字符串的结果打印出来比较,发现其中一个后面多了个“%D",这是换行符的编码,这就是两个字符串不相等的原因了。


解决办法:去掉字符串中的特殊字符再比较。


附:JS中去除特殊字符的方法:

.replace(/\ +/g,"") //去掉空格方法

.replace(/[ ]/g,"")//去掉空格

.replace(/[\r\n]/g,"")//去掉回车换行

.replace(/-/g, '') //去掉"-"号

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值