这是一个用正则表达式截取cookie值的方法,但是我没有看懂,请教各位大神。
document.cookie="a2="+encodeURIComponent("时代; ");
document.cookie="b2="+encodeURI("兴邦");
function getCookie(cookieName) {
var re = new RegExp("\\b"+cookieName+"=([^;]*)\\b");
var arr = re.exec(document.cookie);
return decodeURIComponent(arr?arr[1]:"");
}
alert(getCookie('a2'));
主要不明白的是:getCookie函数。
document.cookie="a2="+encodeURIComponent("时代; ");
document.cookie="b2="+encodeURI("兴邦");
function getCookie(cookieName) {
var re = new RegExp("\\b"+cookieName+"=([^;]*)\\b");
var arr = re.exec(document.cookie);
return decodeURIComponent(arr?arr[1]:"");
}
alert(getCookie('a2'));
主要不明白的是:getCookie函数。
document.cookie="b2="+encodeURI("兴邦");//同上
function getCookie(cookieName) {
var re = new RegExp("\\b"+cookieName+"=([^;]*)\\b");//正则分割cookie(js保存cookie格式为 名称=值)
var arr = re.exec(document.cookie);//执行正则分割出数据
return decodeURIComponent(arr?arr[1]:"");//返回a2的值时代;
}
alert(getCookie('a2'));
就是
var re = /\ba2=([^;]*)\b/
第一个是用构造函数还做的么?
还有就是("\\b"+cookieName+"=([^;]*)\\b")这段表达式的意思是这段cookie开头是用分号;开始么?
("\\b"+cookieName+"=([^;]*)\\b")
\b"+cookieName 表示从传进去的a2位置开始匹配 =原样匹配不管([^;]*)把=后面的除过;和后面的值(也就是;前面的值)放入一个命令捕获组中