当前位置: 首页 > news >正文

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

12.正则

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

1.正则的创建方式

构造函数创建
  		// 修饰符 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
字面量的创造
  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方法) 固定导航栏案例

<!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+.执行falseif (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 BackCompatvar obj = getScroll();console.log(obj);}</script>
</body></html>```
http://www.lryc.cn/news/171174.html

相关文章:

  • 深入学习 Redis - 分布式锁底层实现原理,以及实际应用
  • Hive行转列[一行拆分成多行/一列拆分成多列]
  • TypeScript系列之类型 string
  • 【C++】动态内存管理 ③ ( C++ 对象的动态创建和释放 | new 运算符 为类对象 分配内存 | delete 运算符 释放对象内存 )
  • AMS爆炸来袭,上线即巅峰
  • 是面试官放水,还是公司实在是太缺人?这都没挂,华为原来这么容易进...
  • 怒刷LeetCode的第2天(Java版)
  • AUTOSAR汽车电子嵌入式编程精讲300篇-车载CAN总线网络的异常检测(续)
  • mojo安装
  • 【探索Linux】—— 强大的命令行工具 P.8(进程地址空间)
  • vue3 - Element Plus 切换主题色及el-button hover颜色不生效的解决方法
  • 【C++面向对象侯捷】1.C++编程简介
  • 年龄大了转嵌入式有机会吗?
  • Mysql高级——索引优化和查询优化(2)
  • SpringMVC的拦截器和JSR303的使用
  • servlet中doGet方法无法读取body中的数据
  • Ubuntu MongoDB账户密码设置
  • 指针进阶(3)
  • 信息检索与数据挖掘 | (二)布尔检索与倒排索引
  • 【学习笔记】EC-Final 2022 K. Magic
  • MySQL数据库笔记
  • 大数据之Hive(三)
  • 让高分辨率的相机芯片输出低分辨率的图片对于像素级的值有什么影响?
  • FastGPT 接入飞书(不用写一行代码)
  • 蓝桥杯 题库 简单 每日十题 day6
  • 使用Arduino简单测试HC-08蓝牙模块
  • 如何在 CentOS 8 上安装 OpenCV?
  • 一台主机外接两台显示器
  • 笔记-搭建和使用docker-registry私有镜像仓库
  • 爬虫框架Scrapy学习笔记-2