正規表示式獲取cookie程式碼例項

antzone發表於2017-03-18

本章節分享一段程式碼例項,它實現了利用正規表示式獲取cookie的功能。

下面是一個比較好的封裝,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function getCookie(name){
  var cookie_str = document.cookie,
      cookies = {},
      reg,
      result;
 
  //在cookie_str末尾加上分號
  if(!/;\s*$/.test(cookie_str)){
    cookie_str+=';';
  }
 
  if(name){    //獲取指定cookie
    reg=new RegExp(name+'=([\\w\\W]*?);');
    result=reg.exec(cookie_str);
    console.log(result);
    return result?decodeURIComponent(result[1]):null;
  }
  else {
    reg=/(\S+?)=([\w\W]*?);/g;
    //讀取所有cookie
    while(result=reg.exec(cookie_str)){
      //如果寫入cookie時呼叫了encodeURIComponent來編碼,
      //那麼讀取時要記得呼叫decodeURIComponent來解碼
      cookies[result[1]]=decodeURIComponent(result[2]);
    }
    return cookies;
  }
}
console.log(getCookie());
console.log(getCookie('PHPSESSID'));

相關文章