相同字符串比较却返回false(提取cookie内容出现的小问题)

    今天在做项目的时候需要通过获取cookie值来判断登录者的身份,感觉这个挺简单的,于是立马就写好了。但是在测试的时候,却出现了个小问题(菜鸟一个,当时没有立马想到为什么会出现这样的问题)。

     代码如下:

            this.getRole = function(){
                var cookieArr = document.cookie.split(';');

                for(i=0;i<cookieArr.length;i++)
                {
                    var cookieNameValue=cookieArr[i].split('=');

                    if(cookieNameValue[0]=='role'){                //获取键名为‘role’的键值
                        if(cookieNameValue[1]=='student'){
                             return 'Stu';
                        }
                        if(cookieNameValue[1]=='company'){
                             return 'Enter';
                        }
                        if(cookieNameValue[1]=='teacher'){
                            return 'Tea';
                        }
                    }

                }

            };

浏览器中是有键名为role的cookie的, 但是却没有结果返回。

        然后我把所有cookie中键名都打印了出来,有‘role’。我尝试这样去检测  alert(cookieNameValue[0]=='role');结果一直弹出的都是false。。这就纳闷了,相同的字符串比较,却得到false。

        想了一会,就试想会不会切割得到的键名左右存在这空格呢?于是就把利用正则把获取到的键名的左右的空格去掉,添加下面一行代码后,问题解决了。

                   cookieNameValue[0] = cookieNameValue[0].replace(/(^\s*)|(\s*$)/g,"");

        

        本文仅作为笔记记录。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值