正则表达式相关概念及不可见高度页面的获取

12.正则

概念:匹配有规律的字符串,匹配上则正确

1.正则的创建方式

构造函数创建
js 复制代码
  		// 修饰符 igm
        // i 忽视 ignore
        // g global 全球 全局
        // m 换行
var reg=new RegExp("匹配的内容","修饰符")
  var str = "this is a Box";
        var reg = new RegExp("box", "igm");
        console.log(reg.test(str));//true
字面量的创造
js 复制代码
  var reg = /box/igm;
        console.log(reg.test("this is a Box"));//true

2.正则的方法

test()条件满足,返回true,否则返回false

exec()条件满足,返回数组,不满足返回null

注意:参数为要匹配的字符串

3.字串符匹配正则的方法(4个)

  1. search()条件满足返回下标,不满足返回-1
  2. match()条件满足返回数组,条件不满足返回null
  3. split()切割,返回新的数组
  4. replace()替换.返回新的字符串

4.元字符

  1. 点(.) :代表除了换行以为的所有单个字符(一个点,表示一个字符)

  2. 星号(*):配合其他字符使用,可以让其他字符出现任意多次

  3. \[\]:表示字符可以出现的范围

    a-z*表示任意0到多个a-z的字母

  4. ^(非字符):取反^0-9可以有任意多个非0-9的字符

  5. +:表示至少出现一次

5.元符号

  1. \w*::匹配任意多个数字字母下划线 , \w : 等价于a-zA-Z0-9_
  2. \d*:\d 代表数字, 等价于 0-9,\d* 表示任意多个数字
  3. \D:匹配非数字, 相当于\^0-9
  4. \D{7,}: 匹配至少7个非数字, 相当于\^0-9{7,}

6.锚元字符

  1. /^ 匹配开始,从头开始匹配
  2. $/ 匹配结尾,从结尾开始匹配
  3. \s 匹配空格
  4. 使用或模式匹配: |, | 代表或者的意思, 匹配其中一种字符串
  5. 分组模式匹配: (), ()加上小括号, 将内容进行分组, 可以作为一个整体进行多次匹配

案例

不可见区域的高度获取(封装一个getScroll方法) 固定导航栏案例

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            height: 2000px;
        }
    </style>
</head>

<body>
    11<br>
    11
    <script>
        //onscroll 滚动条事件 document.documentElement.scrollTop Left
        //<!DOCTYPE html>声明头使用document.documentElement.scrollTop
        //不带DTD  使用document.body.scrollTop
        //ie9+  使用window.pageYoffset
        //ie678
        // '获取'不可见区域的兼容写法
        function getScroll() {
            // 不管有没有DTD都可以使用,如果不是ie9+.执行false
            if (window.pageYOffset != undefined) {
                return {
                    left: window.pageXOffset,
                    top: window.pageYOffset
                }
                // 带有DTD
            } else if (document.compatMode === "CSS1Compat") {
                return {
                    left: document.documentElement.scrollLeft,
                    top: document.documentElement.scrollTop
                }
            }
            // 不带DTD(声明头 <!DOCTYPE html>)
            return {
                left: document.body.scrollLeft,
                top: document.body.scrollTop
            }
        }
        document.onscroll = function () {
            console.log(document.compatMode);//带有CSS1Compat,不带DTD BackCompat
            var obj = getScroll();
            console.log(obj);
        }

    </script>
</body>

</html>```
相关推荐
鬼手点金5 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
软件技术NINI6 小时前
美妆商城html+Css+js 4页
javascript·css·html
蛋蛋的就会顺顺的6 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday6 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室6 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan7 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床7 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
子非鱼a8 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台8 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
pride.li9 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉