Post.htm页面: <input type="text" name="txt1">
<input type="button" value="Post">
<script language="javascript" >
function setCookie(name,value)
{
/*
*--------------- setCookie(name,value) -----------------
* setCookie(name,value)
* 功能:设置得变量name的值
* 参数:name,字符串;value,字符串.
* 实例:setCookie('username','baobao')
*--------------- setCookie(name,value) -----------------
*/
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
location.href = "Read.htm"; //接收页面.
}
</script>Read.htm 页面:<script language="javascript" >
function getCookie(name)
{
/*
*--------------- getCookie(name) -----------------
* getCookie(name)
* 功能:取得变量name的值
* 参数:name,字符串.
* 实例:alert(getCookie("baobao"));
*--------------- getCookie(name) -----------------
*/var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
alert(getCookie("baobao"));
</script>
请问这俩句话是什么意思?
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
还有 问什么要输出"baobao"
alert(getCookie("baobao"));
<input type="button" value="Post">
<script language="javascript" >
function setCookie(name,value)
{
/*
*--------------- setCookie(name,value) -----------------
* setCookie(name,value)
* 功能:设置得变量name的值
* 参数:name,字符串;value,字符串.
* 实例:setCookie('username','baobao')
*--------------- setCookie(name,value) -----------------
*/
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
location.href = "Read.htm"; //接收页面.
}
</script>Read.htm 页面:<script language="javascript" >
function getCookie(name)
{
/*
*--------------- getCookie(name) -----------------
* getCookie(name)
* 功能:取得变量name的值
* 参数:name,字符串.
* 实例:alert(getCookie("baobao"));
*--------------- getCookie(name) -----------------
*/var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
alert(getCookie("baobao"));
</script>
请问这俩句话是什么意思?
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
还有 问什么要输出"baobao"
alert(getCookie("baobao"));
如果匹配成功返回一个数组 假如是arr
arr的第一项为整个匹配项其他的为捕获的内容 就是小括号包起来的那些
arr[2]就是([^;]*) 也就是对应name的value值了
unescape(arr[2])因为在存入cookie的时候会进行escape 看setCookie函数就知道了 所以取出的时候 unescape
为什么要输出alert(getCookie("baobao"));了这个只是测试 看cookie里面存了baobao这个东西没有假如已经拿到东西cookie里面的东西 test一下var cookie = 'baobao=baobao123;vcd=456'
var name='baobao';
var arr = cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
alert(arr[2])//baobao对应的值是baobao123 看到alert出来的是baobao123
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
还有 问什么要输出"baobao"
alert(getCookie("baobao"));//用正则匹配出保存的Cookie值,首先你要知道Cookie保存的格式。用alert(document.cookie);看看
arr[2]是所对应的value;
arr[1]您说是整个匹配项,请问整个匹配项是什么?有arr[0]吗?还有最后这一项(;|$)")代表了什么呢?