• 【JavaScript】Web API基础(六)


    目录

    navigator对象(了解)

    history对象(了解)

    本地储存

    localStorage的特点

    localStorage的方法

    localStorage储存复杂数据类型的方法

    sessionStorage的特点(了解)

    正则表达式

    介绍

    语法

    创建正则语法

    判断是否是有符合规则的字符串

    检索(查找)符合规则的字符串

    元字符

    边界符

    量词

    字符类

    修饰符

    标签的自定义属性

    固有属性和自定义属性

    attribute方法

    data-自定义属性


    navigator对象(了解)

    navigator对象:是window上的属性,该对象上记录了浏览器自身的相关信息

    1. // navigator.userAgent:浏览器版本
    2. // 检测 userAgent(浏览器信息)
    3. !(function () {
    4. const userAgent = navigator.userAgent
    5. // 验证是否为Android或iPhone
    6. const android = userAgent.match(/(Android);?[\s\/]+([\d.]+)?/)
    7. const iphone = userAgent.match(/(iPhone\sOS)\s([\d_]+)/)
    8. // 如果是Android或iPhone,则跳转至移动站点
    9. if (android || iphone) {
    10. location.href = 'http://m.itcast.cn'
    11. }
    12. })()

    history对象(了解)

    history对象: 是window上的属性,表示页面的历史,可以通过history对象的属性完成:前进、后退等效果。

    功能:

    1. // 页面前进
    2. history.forward()
    3. // 页面后退
    4. history.back()
    5. // ------------------------------------------
    6. history.go(1)// 前进一页,相当于:history.forward()
    7. history.go(0)// 刷新当前页,相当于:location.reload()
    8. history.go(-1)// 后退一页,相当于:history.back()

    本地储存

    随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。

    • 数据存储在用户浏览器中

    • 设置、读取方便、甚至页面刷新不丢失数据

    • 容量较大,sessionStorage和localStorage约 5M 左右

    localStorage的特点

    1. 生命周期永久生效,除非手动删除,否则关闭页面也会保留

    2. 同一浏览器的多页面之间可以共享

    3. 以键值对的形式储存使用

    localStorage的方法

    • 储存数据:localStorage.setItem(key,value)

    • 获取数据:localStorage.getItem(key)

    • 删除数据:localStorage.removeItem(key)

    localStorage储存复杂数据类型的方法

    场景: 基本数据类型可以直接储存到localStorage中,但是复杂数据类型无法直接储存,需要把复杂数据类型先转换成JSON字符串,在把JSON字符串(就是个字符串)储存到localStorage中

    • 把复杂数据类型转换成JSON字符串:JSON.stringify(复杂数据类型)

      储存数据时,使用本方法

    • 把JSON字符串转换回复杂数据类型:JSON.parse(JSON字符串)

      去除数据时,使用本方法

    sessionStorage的特点(了解)

    1. 生命周期为关闭浏览器窗口

    2. 在同一个页面下数据可以共享

    3. 以键值对的形式存储使用

    4. 用法跟localStorage 基本相同

    正则表达式

    介绍

    正则表达式: 是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象

    使用场景: 正则通常用于匹配、替换、提取那些符合正则表达式的文本,许多语言都支持正则表达式

    • 表单校验中的校验规则功能

    • 过滤敏感词的替换功能

    • 字符串中提取我们想要的部分

    语法

    正则的使用步骤一样,分两步:

    1. 定义规则:写正则

    2. 查找:利用正则表表达式查找文本,找到则返回结果

    创建正则语法

    let 变量名 = /表达式/
    • 其中 / / 是正则表达式的字面量

    • 比如:let reg = /小明/

    判断是否是有符合规则的字符串

    test(): 用来查看字符串是否符合正则规则

    • 是符合,返回true

    • 不符合,返回false

    语法:reg.test(被检测的字符串)

    比如:

    1. let str = '小明今天吃了一个包子'
    2. let reg = /小明/
    3. let result = reg.test(str)
    4. console.log(result) // true

    检索(查找)符合规则的字符串

    exec(): 在字符串中搜索匹配的字符串部分

    语法:reg.exec(被检测字符串)

    • 如果匹配成功,则返回一个数组

    • 如果匹配失败,则返回一个null

    比如:

    1. ​​​​​​​let str = '小明今天吃了一个包子'
    2. let reg = /小明/
    3. let result = reg.exec(str)
    4. console.log(result) // 返回的是一个数组

    元字符

    正则表达式的组成:

    • 普通字符:没有特殊含义,只能匹配和自己相同的字符,如:/a/

    • 元字符:有特殊含义,可以匹配更多规则,如:/[a-z]/

    参考文档:

    元字符分类:

    1. 边界符: 表示位置,开头和结尾,必须用什么开头,用什么结尾

    2. 量词: 表示重复次数

    3. 字符类:特定的字符表示特定的匹配规则

    边界符

    表示位置,开头和结尾,必须用什么开头,用什么结尾

    正则表达式中的边界符(位置符)用来 提示字符所处的位置,主要有两个字符

    边界符

    说明
    ^标示匹配首行文本(以谁开始)
    $标示匹配行位文本(以谁结束)

    注意点: 如果 ^ 和 $ 在一起,表示必须是精准匹配

    量词

    表示重复次数

    量词用来 设定某个模式出现的次数
     

    量词说明

    *

    次数 >= 0 次
    +次数 >= 1 次
    ?次数 0次 或者 1次
    {n}次数 == 1 次
    {n,}次数 >= n 次
    {n,m}n <= 次数 <= m

    字符类

    特定的字符表示特定的匹配规则

    • [xxx] 只要字符串中有[]其中任何一个字符,就匹配成功

    • [] 里面有中划线 - ,表示一个范围 只要字符串的其中一个符合范围,就配合成功

    • [] 里面有一个^表示取反 只有字符串中有一个符合范围,就匹配成功

    • . 匹配除换行符以外的任何单个字符

    ​​​​​​​常用正则网址 :https://www.baidufe.com/fehelper/regexp/index.html

    修饰符

    修饰符约束正则执行的某些细节行为,如:是否区分大小写,是支持多行匹配等

    语法:/表达式/修饰符

    • i 是单词 ignore 的缩写,正则匹配时字母不区分大小写

    1. console.log(/a/i.test('a'))
    2. console.log(/a/i.test('A'))
    • g 是单词 global 的缩写,匹配所有满足正则表达式的结果

    • 替换字符串中的字符:str.replace(正则表达式,'需要被替换的文本')

    标签的自定义属性

    固有属性和自定义属性

    标签上属性可以大致分成两类:

    • 固有属性:标签上本来就有的属性:如:title、id、class......

    • 自定义属性:标签上本来没有的属性,自己随意添加的属性

    需求:通过js获取标签上的属性

    如果要获取html标签上的固有属性(本来就有的属性:title、id、class),可以直接通过dom对象点语法获取和设置

    但是如果要获取html标签上的自定义属性(本来没有的属性,自己随意添加的),使用点语法就不行了,需要通过特殊的方法获取和设置

    注意点:标签的自定义属性在DOM对象中是不存在的,DOM对象中只会储存固有属性

    attribute方法

    attribute系列方法是通用的操作标签属性的方法,不管是固有属性还是自定义属性都可以操作

    1. // 获取标签的属性
    2. box.getAttribute('属性名');
    3. // 设置标签的属性
    4. box.setAttribute('属性名', '属性值');
    5. // 移除标签的属性
    6. box.removeAttribute('属性名');

    注意点:attribute方法可以操作标签的自定义属性和固有属性

    data-自定义属性

    data-自定义属性:传统的自定义属性没有专门的定义规则,开发者随意命名,不够规范,所以在html5中推出来了专门的 data-自定义属性,在标签上一律以data-开头

    注意点: 在DOM对象上的data-自定义属性,一律以dataset对象方式获得

  • 相关阅读:
    第3章-8 字符串逆序
    【OpenCV】双目相机测距及其深度恢复原理及其算法流程
    会用redis吗?那还不快来了解下redis protocol
    cookie 里面都包含什么属性?
    CSS:结构伪类选择器(选择子元素)、伪元素、标准流、浮动、清除浮动
    基于图搜索的规划算法之A*家族(五):D* 算法
    Java学习笔记(十四):String类
    胡哥面试视频手录
    redis使用zset实现数据库多字段排序的一种方式
    Python公共操作和推导式
  • 原文地址:https://blog.csdn.net/weixin_43797577/article/details/125466528