2011-11-24 42 views
0

我有一個名爲「login」的cookie,其中包含像「username | hashcode | salt」這樣的結構。javascript - 使用substr方法獲取部分cookie值

這裏是我的代碼:

function readTheCookie(the_info) 
    { 
    var the_cookie = document.cookie; 
    var the_cookie = unescape(the_cookie); 

    var broken_cookie2 = the_cookie.substr(6); 

    alert(broken_cookie2); 
    } 

    readTheCookie('login'); 

I'ts給我

pickup22 | d47f45d141bf4ecc999ec4c083e28cf7 | 4ece9bce292e1

現在我只想第一部分(第一管之前的一切,在這種情況下, ,我想皮卡22)

我該怎麼做?因爲用戶名永遠不會相同,所以我不能提供「固定」長度。

任何幫助表示讚賞!

+0

'broken_cookie2.split(「|」)[0]'。您的Cookie獲取功能應該真的提高。介紹另一個cookie會破壞你的代碼。 –

回答

2
var readTheCookie = function (the_info) { 
     var the_cookie = document.cookie.split(";"), a = the_cookie.length, b; 
     for (b = 0; b < a; b += 1) { 
      if (the_cookie[b].substr(0, the_info.length) === the_info) { 
       return the_cookie.split("=")[1].split("|")[0]; 
      } 
     } 
     if (b === a) { 
      return ""; 
     } 
    }, 
    username = readTheCookie('login'); 

這是好的,結構緊湊,再加上易於閱讀,最後卻是JSLint的標準。請享用!

+0

非常感謝!這工作完美! – Lelly

1

最好的方法是用split()的方法。

var parts = new Array(); 

parts = broken_cookie2.split("|"); 

var username = parts[0]; 
var hashcode = parts[1]; 
var salt = parts[2];