使用javascript中的if条件比较for循环中的两个字符串



我正在处理javascript cookie,我的cookie名称
ssecname
所以我想用这个代码搜索我的cookie

function readcookie() {
var allcookies = document.cookie;
var cookiearray  = allcookies.split(';');         
for(var i = 0; i<=cookiearray.length; i++)
 {
  name =  cookiearray[i].split('=')[0];
  coo_glo_value = cookiearray[i].split('=')[1];
  alert(name); /* here it shows name value is equal to ssecname but not comparing below */
  if(name == "ssecname") /* i have tried === */
  {
     alert('here you go');
  }        
 } 
}

我不知道为什么不比较我的字符串,但当我做时

  if(name != "ssecname")
  {
     alert('here you go');
  }        

所以它给了我输出,所以我不明白为什么会发生??请帮帮我,并告诉我一些其他的比较方法。。提前通知:)

尝试使用foreach:

function readCookie() {
    var cookies = document.cookie;
    var cookieBundle = cookies.split(';');     
    for(var i in cookies) {
        var name = cookieBundle[i].split('=')[0],
            cookieValue = cookieBundle[i].split('=')[1];
        if(name.trim() == "csrftoken") {
            alert("Here you go.");
        }
    }
}
readCookie();

你可以在jsFiddle上玩这个。

(注意:在比较中更改您的cookie名称)。

到知识

foreach的工作原理与法线for非常相似。它以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句。(要了解有关此功能的更多信息,请单击此处。)

我使用的trim()函数基于Botis的答案——它从字符串中删除了所有空格。

最新更新