提取cookie中某個值的函數

功能: 根據傳入的鍵, 提取document.cookie中對應cookie的值
廢話很少說, 直接上代碼javascript

getCookie: function(str){
    var reg = new RegExp(str + '=' + '([^;]*)' + ';'); 
    var result = reg.exec(document.cookie); 
    return (result&&result[1])||false; 
}

第一行代碼java

var reg = new RegExp(str + '=' + '([^;]*)' + ';');

構建了一個新的正則表達式. 因爲正則表達式要根據傳入的str值動態構建(on the fly), 所以要用到正則表達式的構造函數new RegExp(source), 至關於直接構建正則表達式的source. 正則表達式

正則表達式中重點看這幾句代碼:'([^;]*)', 意思是匹配str=後面的不爲;([^;]表示非集, 也就是全部不爲;的字符都能被匹配)的字符串, 該字符串出現0或更屢次(*), 以後將匹配到的字符串放入第一個捕獲組. cookie

第二行代碼函數

var result = reg.exec(document.cookie);

很簡單, 就是執行該正則並將匹配結果賦給result變量code

第三行代碼ip

return (result&&result[1])||false;

返回值遇到兩種狀況, 有匹配, 或者沒有匹配. 有匹配的狀況下, 咱們返回第一個捕獲組result[1]; 沒有匹配的狀況下, 則返回false, 固然你也能夠返回其它的任意值.字符串

相關文章
相關標籤/搜索