^ 以什么开头
$ 以什么结尾
常用的限定符
字符 描述
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
{n} 匹配确定的 n 次
{n,} 至少匹配n 次
{n,m} 最少匹配 n 次且最多匹配 m 次
String类中可以支持正则的方法:
search =》返回匹配字符串的下标,否则返回-1
match=》如果没有找到任何匹配的文本, 返回 null。否则,它将返回一个数组(依赖于是否具有全局标志 g)
replace=》返回一个新的字符串
split=》返回一个字符串数组
/*search()方法-使用正则表达式来检索字符串中的kgc*/,indexOf不可以使用正则
var str="hello abc";
console.log(str.search(/abc/))==6;
console.log(str.search(/ABC/))==-1;
console.log(str.search(/ABC/i))==6;
/*match()方法-使用正则表达式来检索字符串中的所有数字*/
var str="1 and 2 and 3";
console.log(str.match(/\d/))=;
console.log(str.match(/efg/))==null;
console.log(str.match(/\d/g));
/*replace()方法-使用 "abc" 替换字符串中的 "yang"*/
var str="hello yang";
console.log(str.replace(/yang/,"abc"));
var str="hello yang, How are you?yang";
console.log(str.replace(/yang/g,"abc"));
/*split()方法-把单词分割为字母*/
console.log("hello".split(""));
console.log("hello".split("",3)) 第二个参数表示分割成的数组长度为3,["h","e","l"];
var str="h1e2l3l4o"
console.log(str.split(/\d/));
正则验证
验证26个英文字母组成的字符串
验证由数字和26个英文字母组成的字符串
验证由数字、字母、下划线组成的字符串
验证汉字
/*验证26个英文字母组成的字符串*/
var str="sgfhdfGIYYjhj";
var reg=/^[a-zA-Z]+$/; //一次或多次 "+"
console.log(reg.test(str));
/*验证由数字和26个英文字母组成的字符串*/
var str="abc123DFjh";
var reg=/^[0-9a-zA-Z]+$/;
console.log(reg.test(str));
/*验证由数字、字母、下划线组成的字符串*/
var str="abc_123_DFjh";
var reg=/^\w+$/;
console.log(reg.test(str));
/*验证汉字*/
var str="我的祖国";
记忆法:有事100,有酒罚我
var reg=/^[\u4e00-\u9fa5]+$/
console.log(reg.test(str));
例1:
使用正则验证如下需求
首尾有空格的字符串(分别验证清除前面、后面、前后以及所有空格的方法)
验证手机号码使用|,表示或
验证邮箱
/*验证首尾有空格的字符串*/
var str=" abc "
var reg=/^\s+/ //去前面空格
console.log(str.replace(reg,''));
//去后面的空格
var str=' abc '
var reg=/\s+$/
console.log(str.replace(reg,''));
//去前后的空格
var str=' abc '
var reg=/^\s+|\s+$/g
console.log(str.replace(reg,''));
//清除所有空格
var str=' abc hy '
var reg=/\s+/g
console.log(str.replace(reg,''));
/*字符串的trim()[括号内为空]方法只能去除前后空格里面的空格去不掉*/
var str=' abc hy '
console.log(str.trim());
/*验证手机号码*/
var str="13502023437";
var reg=/^1[34578][0-9]{9}$/
console.log(reg.test(str));
/*验证邮箱*/
var str="huyang@163.com";
var reg=/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
或者:/^[\w-]+@[\w-]+(\.[\w-]+)+$/
console.log(reg.test(str));
(\表示转义符 把.转化为字符串的,并且使用()分组,就是把.com 或者.cn当成一组)
()后面使用+号,表示可能有一组,可能有多组;
例2:
使用正则给如下字符串中的数字加上中括号
var str='abc123efg'; 变成'abc[1][2][3]efg'
例3:表单验证
user.οnblur=function(){
reg=/^[\w\u4e00-\u9fa5]{6,12}$/;
if(user.value==''){
user_p.innerHTML='<i class="err"></i>不能为空';
return false;
}
else if(!reg.test(user.value)){
user_p.innerHTML='<i class="err"></i>长度不在范围内或者存在非法字符'
return false;
}
//用户名输入与要求一致
else{
user_p.innerHTML='<i class="ok"></i>正确'
return true
}
}
表单验证—登录密码需求
psd.οnblur=function(){
var reg=/^\w{6,12}$/;
var reg1=/[^0-9]/;
var reg2=/[^a-zA-Z]/;
if(psd.value==''){
psd_p.innerHTML='<i class="err"></i>不能为空';
return false;
}
//长度在6-12之间 字母数字下划线
else if(!reg.test(psd.value)){
psd_p.innerHTML='<i class="err"></i>长度不在范围内或者存在非法字符'
return false;
}
else if(!reg1.test(psd.value))
{
psd_p.innerHTML='<i class="err"></i>不能全是数字'
return false;
}
else if(!reg2.test(psd.value)){
psd_p.innerHTML='<i class="err"></i>不能全是字母'
return false;
}
//密码输入与要求一致
else{
psd_p.innerHTML='<i class="ok"></i>正确'
return true;
}
表单验证—确认密码需求
psd2.οnblur=function(){
if(psd2.value==""){
psd2_p.innerHTML='<i class="err"></i>不能为空';
return false;
}
//两次密码输入不一致
else if(psd.value!=psd2.value){
psd2_p.innerHTML='<i class="err"></i>两次密码不一致';
return false;
}
//密码输入与要求一致
else{
psd2_p.innerHTML='<i class="ok"></i>正确'
return true;
}
}
Cookie概念
Cookie 用于存储页面的用户信息
常见例子:自动登录、记住用户名或密码
cookie特性
同一个网站中所有页面共享一套Cookie
域名和端口一致,就算路径不一样也能共享一套cookie
数量、大小有限
和localstorage\sessionstorage区别是cookie所占的数量有限,存储的东西比他们少,浏览器一般只允许存放300多个cookie,每个站点最多存放20个cookie,每个cookie的大小限制不超过4kb。
过期时间
操作Cookie
创建Cookie
document.cookie=”名字=值 ”
document.cookie="user=family";
document.cookie="pass=123456";
alert(document.cookie);
注意 JS“=”代表覆盖,cookie“=”代表添加
使用JavaScript操作Cookie
删除Cookie
过期时间:expires=时间
var oDate=new Date();
oDate.setDate(oDate.getDate()+8);
alert(oDate.getFullYear()+'-'+(oDate.getMonth()+1)+'-'+oDate.getDate());
document.cookie="user=family;expires="+oDate;
封装Cookie
封装三个函数
setCookie()——创建Cookie
getCookie()——获取Cookie
removeCookie()——删除Cookie