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

时间:2013-07-18 13:50:35

标签: javascript string cookies comparison

我正在处理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');
  }        

所以它给我输出你去,所以我不明白为什么它发生? 请帮助我,并告诉其他一些比较方式.. Tahnks提前:)

1 个答案:

答案 0 :(得分:3)

尝试使用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非常相似。它迭代对象的可枚举属性,以任意顺序。对于每个不同的属性,可以执行语句。 (要了解有关此功能的更多信息,请click here。)

我根据Botis'答案使用的trim()函数 - 它会从字符串中删除所有空格。