有临时存值和永久存值,还有清空值;
//临时存储
window.sessionStorage.setItem('nu',inp[3].value); //存值 名称 对象的值或内容
window.sessionStorage.getItem('nu'); //获取存到的值
window.sessionStorage.clear(); //删除存到的值
//永久存储
window.localStorage.setItem('nu',inp[3].value); 名称 对象的值或内容
var a=window.localStorage.getItem('nu'); //获取存到的值
alert(a);
window.localStorage.clear();
下面来看一个实例;多用户注册和登陆;
html代码
<body>
<input type="text" />
<input type="text" />
<input type="button" value="登录"/>
<input type="text" placeholder="账号"/>
<input type="text" placeholder="手机号"/>
<input type="text" placeholder="密码"/>
<input type="button" value="注册" />
</body>
JS部分
var inp=document.querySelectorAll("input");
var a=window.localStorage; /*永久存储*/
//注册赋值
inp[6].onclick=function(){
/*window.localStorage.clear(); 清除本地存储*/
if(a.getItem("Account")){ /*账号 判断如果本地存储里面已经有了值*/
a.Account+="/"+inp[3].value;// 因为前面的一个值会覆盖下面的一个值,所以用字符串拼接起来
}else{
a.Account=inp[3].value;/*如果没有值就直接赋予值*/
}
if(a.getItem("Password")){ /*密码 判断如果本地存储里面已经有了值*/
a.Password+="/"+inp[4].value;// 因为前面的一个值会覆盖下面的一个值,所以用字符串拼接起来
}else{
a.Password=inp[4].value;/*如果没有值就直接赋予值*/
}
if(a.getItem("phone")){ /*手机 判断如果本地存储里面已经有了值*/
a.phone+="/"+inp[5].value;// 因为前面的一个值会覆盖下面的一个值,所以用字符串拼接起来
}else{
a.phone=inp[5].value;/*如果没有值就直接赋予值*/
}
}
//原生
/*inp[3].onblur=function (){
if(a.getItem("Account")){ 账号 如果里面是否有值 则进行判断是否已被注册
var Acco=a.getItem("Account").split("/");
for(var i=0;i<Acco.length;i++){
if(inp[3].value==Acco[i]){
alert("改账号已被注册")
inp[3].value=""; 清除内容
inp[3].focus(); 重新获取焦点
}
}
}
}
inp[4].onblur=function (){
if(a.getItem("phone")){
var Acco=a.getItem("phone").split("/");
for(var i=0;i<Acco.length;i++){
if(inp[4].value==Acco[i]){
alert("改账号已被注册")
inp[4].value="";
inp[4].focus();
}
}
}
}*/
//封装函数
function foo(type,n,title){ /*传参数*/
if(a.getItem(type)){
var Acco=a.getItem(type).split("/");
for(var i=0;i<Acco.length;i++){
if(inp[n].value==Acco[i]){
alert(title)
inp[n].value="";
inp[n].focus();
}
}
}
}
//账号
inp[3].onblur=function(){ /*接受参数*/
var ren=/^\S{2,5}$/;
if(!ren.test(inp[3].value)){
alert("账号格式不对")
}
foo("Account",3,"改账号已被注册"); /*赋值参数*/
}
//手机
inp[4].onblur=function(){ /*接受参数*/
var ret=/^1[3|4|5|8|9][0~9]\d{8}$/;
if(!ret.test(inp[4].value)){
alert("手机格式不对")
}
foo("phone",4,"改手机已被注册");/*赋值参数*/
}
//登录信息
inp[2].onclick=function(){
var Acco=a.getItem("Account").split("/");// 账号 获取本地存储里面的值 把字符串分割成数组,用于下面登陆和注册时的匹配
var Pass=a.getItem("Password").split("/");// 密码 获取本地存储里面的值 把字符串分割成数组,用于下面登陆和注册时的匹配
var bool=false
for(var i=0;i<Acco.length;i++){
if(inp[0].value==Acco[i]&&inp[1].value==Pass[i]){ //匹配是否已经注册
bool=true
alert("登录成功")
break //匹配到则跳出函数
}
}
if(!bool){
alert("密码或账号错误")
}
}