JavaScript学习 第十二天 cookie与正则

本文详细介绍了JavaScript中的Cookie,包括其存储、设置过期时间和获取方法,同时探讨了Cookie的优缺点。此外,还深入讲解了正则表达式的基础,包括创建方式、修饰符以及检测方法,为JavaScript开发中的文本处理提供了实用知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、cookie

Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。浏览器需要保存这段数据,不会轻易删除(保存在计算机中)。此后每次浏览器访问该服务器,都必须带上这段数据。

cookie 实际上是指小量信息,只能存储4KB,是由 Web 服务器创建的,将信息存储在用户计算机上的文件,比如用户登录某个网站,浏览器会提示是否保存用户名和密码方便下次登录,如果保存就是将信息保存在cookie当中,Cookie 在计算机中是个存储在浏览器目录中的文本文件

cookie:由web服务器创建的,存储在本地计算机中的少容量数据,文本文件

​ 用户名,密码,id,只能存储4KB

谷歌和欧朋不支持本地存储

​ 如果没有过期时间,一般浏览结束后销毁cookie

cookie缺点:容量限制 4KB

​ 由http明文传递,容易被窃用,盗取

​ cookie每一次请求都会自动添加到请求头Request Headers,增加容量

cookie的存储

语法: document.cookie = “key=value”;

//1.存储cookie, document.cookie="key=value";
document.cookie = "userName=txf123";

//2.单个存储,如果多个,多存储几遍
document.cookie = "passWord=123456";

//3.key值唯一,如果同名会覆盖
document.cookie = "passWord=654321";
cookie设置过期时间

语法:document.cookie = “key=value;expires=时间对象”;

var oDate = new Date();
oDate.setSeconds(oDate.getSeconds()+10); //10秒以后
document.cookie = "userName=123456;expires="+oDate.toGMTString();
获取cookie

语法:document.cookie

二、正则对象RegExp

正则表达式:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符,及这些特定字符的组合,组成一个‘规则字符串’,这个规则字符串用来表达对字符串的一种过滤逻辑。简单的说就是规定文本检索的内容 ,通常被用来检索、替换文本。

正则对象的创建方式

关键字创建:new RegExp(检测的字符规则,修饰符)

字面量创建:/检测的字符规则/修饰符

区别:new创建方式可以放变量,字面量只能是字符

var reg = new RegExp("o","ig"); //关键字创建
var reg = /o/ig;  //字面量创建
修饰符

g:global 全局匹配

i:ignore case 不区分大小写匹配

g:

var str = "下课了下课了下课了下课了"; 
var reg = /下/;
console.log(str.replace(reg,"上")); //上课了下课了下课了下课了
var reg = /下/g;
console.log(str.replace(reg,"上")); //上课了上课了上课了上课了

i:

var str = "hello world hello World";
var reg = /world/g;
console.log(str.replace(reg,"javaScript"));//hello javaScript hello World

var reg = /world/gi;
console.log(str.replace(reg,"javaScript"));//hello javaScript hello javaScript
检测方法
字符串检测方法

replace,split,search,match

正则检测方法
//test:判断字符串是否满足条件,是返回true,不是返回false
var str = "123456";
var reg = /^\d{6}$/;
console.log(reg.test(str)); //true


//exec:具体的检测,返回一个数组(检测到的内容,对应的下标),匹配不到返回null
var str = "wwrewr4fsf5fd";
var reg = /\d/g; //全局匹配,一次匹配一个,没有g表示下一次匹配的时候从头开始,有g从当前找到的这个位置开始往后
console.log(reg.exec(str)); //["4", index: 6, input: "wwrewr4fsf5fd", groups: undefined]
console.log(reg.exec(str)); //["5", index: 10, input: "wwrewr4fsf5fd", groups: undefined]
console.log(reg.exec(str)); //null
console.log(reg.exec(str)); //["4", index: 6, input: "wwrewr4fsf5fd", groups: undefined]
元字符
//---------------单个字符------------------------------
    var str = "\nweb";
    //1  . : 除换行符以外的任意字符    
    var reg = /./;
    console.log(reg.exec(str)); //从左往右,匹配第一个满足条件的

    var str = "web0708";
    var reg = /web..../;   //转义\
    console.log(reg.exec(str));

    //2  []:匹配字符集中任意一个字符
    var str = "w2f3t3";
    var reg = /[0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_]/;
    console.log(reg.exec(str));

    //[^] : 匹配除字符集中任意一个字符
    var str = "t34g$dsd&ds";
    var reg = /[^0-9a-zA-Z]/;
    console.log(reg.exec(str)); //$

    //3. \d : 匹配数字    \D:匹配非数字
    var str = "fda213fer";
    var reg = /\d/;
    console.log(reg.exec(str)); //2

    var reg = /\D/;
    console.log(reg.exec(str)); //f


    //4. \w:匹配数字,字母,_   \W:匹配非数字,字母,_
    var str = "3fd4";
    console.log(/\w/.exec(str)); //3
    console.log(/\W/.exec(str)); //null

    //5.  \s:匹配空格    \S:匹配非空格
    var str = "fd fd";
    console.log(/\s/.exec(str)); //" "
    console.log(/\S/.exec(str)); //f

    //使用正则,去除字符串首尾空格   
    var str = "             hello world!                    ";


    //6.   ^a : 以a开头     a$:以a结尾
    var str = "234568";
    var reg = /^\d\d\d\d\d\d$/;
    console.log(reg.exec(str));




   //---------------------多个字符---------------------------
   //?: a?:匹配前面的字符0次或1次
   var str = "web";
   var reg = /.?web/;  //web前面可以有一位字符或者没有
   console.log(reg.exec(str));

   //*: a*:匹配前面的字符0次或多次 
   var str = "aaaawebaa";
   var reg = /a*/;
   console.log(reg.exec(str));//aaaa

   //+ : a+ : 匹配前面字符1次或多次
   var str = "web19834";
   var reg = /web\d+/;
   console.log(reg.exec(str));

   //{x,y} : 最少x次,最多y次
   var str = "14837498324329403";
   var reg = /^\d{6}$/; //固定的位数
   var reg = /^\d{6,}$/; //最少6位,没有上限
   var reg = /^\d{6,18}$/; //最少6位,最多18位
   
   
   //()
        var str = "hello zlg";
        var reg = /^hello ([a-z]{2,4})$/;
        var arr = reg.exec(str); // ["hello zlg", "zlg"]
        console.log(arr[1]); //zlg


        console.log(RegExp.$1);

        var str = "hello world";
        var reg = /^(hello) (world)$/;
        var arr = reg.exec(str); //  ["hello world", "hello", "world"]
        console.log(RegExp.$1);
        console.log(RegExp.$2);
        console.log(str.replace(reg,'$2 $1'));


        //| 或
        var str = "http://www.china.cn";
        var reg = /^(http|https):\/\/www\.\w+\.(com|cn|net|edu|org)$/;
        console.log(reg.exec(str)); //["http://www.china.cn","http","cn"]
        

        //(?:) : 非获取匹配 (?:a|b)
        var reg = /^(?:http|https):\/\/www\.\w+\.(?:com|cn|net|edu|org)$/;
        console.log(reg.exec(str)); //["http://www.china.cn"]

        //(?=):肯定预查  前瞻
        var str = "1web";
        var reg = /web(?=\d)/;  //后面必须接数字
        console.log(reg.exec(str));

        //(?!): 
        var str = "web";
        var reg = /web(?!\d)/;  //后面不能接数字
        console.log(reg.exec(str));
        
        (?=.*\d.*) :必须有数字
        (?!^\d+$):不能是纯数字
        (?!^[a-zA-Z]+$):不能是纯数字
        附加条件,不能单独使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值