功能: 根據傳入的鍵, 提取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
, 固然你也能夠返回其它的任意值.字符串