JavaScript-4.正则表达式、BOM

news2025/1/17 4:04:29

正则表达式

正则表达式包含在"/","/"中

开始与结束

^

字符串的开始

$

字符串的结束

例:

  • "^The":表示所有以"The"开始的字符串("There"、"The cat"等)
  • "of despair$":表示所有以"of despair"结尾的字符串
  • "^abc$":表示开始和结尾都是"abc"的字符串
  • "notice":表示任何包含"notice"的字符串

量词(次数)

+

一次/更多

*

没有/更多

?

没有/一次

{}

重复次数的范围

例:

  • "ab*":表示一个字符串有一个a后面跟着零个或若干个b("a"、"ab"、"abbb"……)
  • "ab+":表示一个字符串有一个a后面跟着至少一个b或者更多
  • "ab?":表示一个字符串有一个a后面跟着零个或者一个b
  • "a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b
  • "ab{2}":表示一个字符串有一个a跟着2个b("abb")
  • "ab{2,}":表示一个字符串有一个a跟着至少2个b
  • "ab{3,5}":表示一个字符串有一个a跟着3到5个b

查找匹配

x|y

匹配x或y

(x)

匹配括号中的内容

.

匹配任意字符

[xyz]

匹配中括号中的任意一个

[^xyz]

中括号中的一个都不匹配

[a-d]

表示一个字符串包含小写a到d中的一个

[a-zA-Z]

包含大小写的任意一个字母

[0-9]

数字

转义字符

\d

数字

\D

非数字

\n

换行符

\r

回车符

\s

空白字符,包括\n,\r,\f,\t,\v等

\S

非空白字符

\t

制表符

\v

重直制表符

\w

匹配字母,数字或下划线字符

练习

校验登录名:只能输入5-20个以字母开头、可带数字、"_"、"."的字符串

密码:6-20个字母、数字、下划线

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>校验登录</title>
    <script>
        function check(){
            var username = document.getElementById('username').value
            var userpass = document.getElementById('userpass').value
            // 登录名5-20个以字母开头、可带数字、"_"、"."的字符串
            var name_regex = /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
            // 密码6-20个字母、数字、下划线
            var pass_regex = /^(\w){6,20}$/
            
            if(username == null || username == '') {
                document.getElementById('pass').innerHTML = ''
                document.getElementById('name').innerHTML = '用户名不能为空'
                return false
            }else if(username.match(name_regex) == null){
                document.getElementById('pass').innerHTML = ''
                document.getElementById('name').innerHTML = '登录名5-20个以字母开头、可带数字、"_"、"."的字符串'
                return false
            }else if(userpass == null || userpass == ''){
                document.getElementById('name').innerHTML = ''
                document.getElementById('pass').innerHTML = '密码不能为空'
                return false
            }else if(userpass.match(pass_regex) == null){
                document.getElementById('name').innerHTML = ''
                document.getElementById('pass').innerHTML = '密码6-20个字母、数字、下划线'
                return false
            }else{
                alert('登录成功')
                return true
            } 
        }
    </script>
</head>
<body>
    <form action="" method="get" onsubmit="return check()">
        username:<input type="text" id="username"><font id="name"></font>
        <br>
        userpass:<input type="text" id="userpass"><font id="pass"></font>
        <br>
        <input type="submit">
    </form>
</body>
</html>

浏览器对象模型(BOM)

window.open():打开新窗口

window.close():关闭当前窗口

window.print():打印

history.back():与在浏览器点击后退按钮相同

history.forward():与在浏览器点击向前按钮相同

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>BOM</title>
</head>
<body>
    <button id="btn1" onclick="alert(window.confirm('你确定要执行此操作吗?'))">确认框</button>
    <button id="btn2" onclick="window.close()">关闭窗口</button>
    <button id="btn3" onclick="window.open()">打开窗口</button>
    <button id="btn4" onclick="window.print()">打印窗口</button>
    <button id="btn5" onclick="history.back()">返回上一页</button>
</body>
</html>

计时

setInterval():间隔指定的毫秒数不停地执行指定的代码

setTimeout():暂停指定的毫秒数后执行指定代码

clearInterval():用于停止setInterval()方法执行的函数代码

clearTimeout():用于停止执行setTimeout()

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计时</title>
    <script>
        window.onload=function(){
            document.getElementById('btn1').onclick=function(){
                // 注意:没有加var
                display_time = setInterval(function(){start_time()}, 1000)
            }
            document.getElementById('btn2').onclick=function(){
                clearInterval(display_time)
            }
        }
        
        function start_time(){
            var d = new Date()
            var t = d.toLocaleTimeString()
            document.getElementById('time').innerHTML = t
        }
    </script>
</head>
<body>
    <p id="time"></p>
    <button id="btn1">显示时间</button>
    <button id="btn2">暂停时间</button>
</body>
</html>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计时2</title>
    <script>
        function myFunction(){
            tmp = setTimeout(function(){alert('hello!')}, 3000)
        }
        function stopmyFunction(){
            clearTimeout(tmp)
        }
    </script>
</head>
<body>
    <p>要在3秒前阻止弹窗出现</p>
    <button id="btn1" onclick="myFunction()">三秒后出现弹窗</button>
    <button id="btn2" onclick="stopmyFunction()">阻止弹窗出现</button>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1622926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

39-数组 _ 二维数组

39-1 二维数组的创建 行和列编号依旧是从0开始&#xff1a; //arr数组&#xff1a; //1 2 3 4 //2 3 4 5 //2 4 5 6 //三行四列int main() {int arr[3][4]; //存放整数char arr1[5][10]; //存放字符return 0; } 39-2 二维数组的初始化 创建之后&#xff0c;利用初始化赋值…

Linux + mysql面试题

Linux 基础.Linux 基础说出 个以上的 Linux 命令在 RedHat 中&#xff0c;从 root 用户切到 userl 用户&#xff0c;一般用什么命令&#xff1f;Linux 中&#xff0c;一般怎么隐藏文件&#xff1f;在 Linux 系统中&#xff0c;一个文件的访问权限是 7&#xff0c;其含义是什么…

对增加LLaMA 3 上下文长度技术的猜测

AI苏妲己&#xff1a; 在许多应用场景中&#xff0c;如长对话、长文档摘要或长期计划执行等&#xff0c;大语言模型能够支持较长的上下文窗口是非常理想的。以一次处理约50页书籍内容为例&#xff0c;通常需要模型支持32K个token的上下文长度。目前&#xff0c;主流的大语言模…

docker快速搭建部署mqtt

文章目录 前言一、mqtt是什么&#xff1f;二、使用步骤1.引入库2.创建临时容器3.创建挂在目录4.将临时容器的配置挂载到宿主机中5.删除临时容器6.运行容器并挂载文件7.登录EMQX内置的管理控制台 总结 前言 一、mqtt是什么&#xff1f; MQTT&#xff08;Message Queuing Teleme…

智慧码头港口:施工作业安全生产AI视频监管与风险预警平台方案

一、建设思路 随着全球贸易的快速发展&#xff0c;港口作为连接海洋与内陆的关键节点&#xff0c;其运营效率和安全性越来越受到人们的关注。为了提升港口的运营效率和安全性&#xff0c;智慧港口视频智能监控系统的建设显得尤为重要。 1&#xff09;系统架构设计 系统应该采…

LLM大语言模型(十二):关于ChatGLM3-6B不兼容Langchain 的Function Call

背景 基于本地的ChatGLM3-6B直接开发LangChain Function Call应用&#xff0c;发现其输出的action和action_input非常不稳定。 表现为生成的JSON格式回答非常容易出现不规范的情况&#xff0c;导致LangChain的Agent执行报错&#xff0c;或者进入死循环。 ChatGLM3-6B不兼容La…

关于DevOps理解和总结

DevOps是研发领域最近几年最热的一个概念。参加过一些讲座&#xff0c;也看过不少的书籍&#xff0c;经常听到以下说法&#xff1a; DevOps是没有明确定义的&#xff0c;一千个研发心中就有一千个Devops&#xff1b;DevOps是一种文化&#xff0c;每个团队的DevOps实践都不一样…

spring基本使用

文章目录 1. ioc(Inversion of Control) | DI(Dependency Injection)(1) maven坐标导包(2) 编写配置文件bean.xml(3) 配置bean(4) 配置文件注入属性 2. DI(dependency injection) 依赖注入(setter)其他属性(1) 对象属性注入(2) 数组属性输入(3) 集合属性注入(4) map集合注入(5)…

JAVASE8中基本数据类型

本篇文章基于有过一部分的C语言基础的&#xff0c;还望大家理解 在进入到学习之前我们必须要清楚的是在JAVASE中数据类型与C语言中的数据类型基本上是相同的,接下来我们先来对8中数据类型进行简要介绍&#xff0c;他们分别是&#xff1a; 如果大家之前了解过C语言那么对于基本数…

【FP7208-RGBWY五路调光方案】 单节锂电池LED升压恒流驱动调光芯片FP7208,PWM内部转模拟调光,无频闪顾虑低亮无抖动

文章目录 方案背景 二、RGBWY五路调光调色芯片FP7208 1.芯片参数 2.单颗芯片五路调光应用原理 调光调色信号注意事项&#xff1a; 3.五路调光应用电路图DEMO实物图 4.RGBWY调光调色详解 总结 方案背景 近年来随着技术的不断进步&#xff0c;越来越多的产品需要适应小型化和便携…

系统试运行报告(上线运行报告Word原件2024)

一、试运行目的 软件项目试运行的主要目的是在实际应用环境中对软件系统进行全面检验&#xff0c;确保其满足设计要求和用户需求&#xff0c;同时发现和解决潜在的问题&#xff0c;为正式投入使用做好准备。通过试运行&#xff0c;我们可以&#xff1a; 验证软件系统的稳定性…

ONES 功能上新|ONES Wiki 新功能一览

支持在 ONES Wiki 页面中使用分栏进行横向排版&#xff0c;丰富排版方式&#xff0c;帮助用户以更丰富的版式展示内容。 应用场景&#xff1a; 页面的布局对内容的阅读有很大的影响。当页面中有图文混排的需求时&#xff0c;可以通过分栏来组织页面结构&#xff0c;以更清晰、更…

LabVIEW学习记录 - 实时显示时间

LabVIEW操作 - 实时显示时间 在程序框图&#xff0c;选择函数->定时->格式化日期/时间字符串 该函数的使用手册说明&#xff1a; 鼠标选择“格式化日期/时间字符串”->创建->输入控件->输入格式 查看时间代码格式&#xff1a; 编程->定时->获取时间日…

cad中快速计算多个矩形面积的方法

1、输入命令reg&#xff0c;选中矩形创建面域 2、输入命令uni,选中刚刚创建的面域&#xff0c;组合成一个面域 3、输入命令&#xff1a;LI &#xff0c;选中面域&#xff0c;即可查看面积和周长 需注意的一点&#xff0c;开始创建的矩形或者多段线要在一个面内&#xff0c;就是…

word常用的文件格式有哪些?word格式文件删除了怎么恢复

在数字文档处理的世界中&#xff0c;Microsoft Word以其丰富的格式选项和强大的编辑功能赢得了广大用户的青睐。但与此同时&#xff0c;误删或丢失Word格式文件的情况也时有发生。本文将深入探讨Word常用的文件格式有哪些&#xff0c;同时分享如何恢复误删的Word文件&#xff0…

浏览器的工作原理

参考&#xff1a;渲染页面&#xff1a;浏览器的工作原理 - Web 性能 | MDN (mozilla.org) Web 性能 | MDN (mozilla.org) Web性能影响因素 首先有两个&#xff0c;一个是网络延迟&#xff0c;一个是大部分情况下浏览器都是单线程执行的 保障页面快速加载的最大威胁是网络延迟…

MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口

文章目录 前言2 核心功能2.1 条件构造器2.1.1 Wrapper2.1.2 QueryWrapper2.1.3 UpdateWrapper2.1.4 LambdaQueryWrapper 2.2 自定义SQL2.2.1 基本用法2.2.2 多表关联 2.3 Service接口2.3.1 IService2.3.1.1 save2.3.1.2 remove2.3.1.3 update2.3.1.4 get2.3.1.5 list2.3.1.6 co…

主成分分析PCA原理以及特征

一、PCA原理 原始数据 x ∈ R N x\in R^N x∈RN&#xff0c;经过PCA投影后的数据 y A x &#xff0c; y ∈ R P yAx&#xff0c;y\in R^P yAx&#xff0c;y∈RP 其中&#xff0c; A ∈ R P N A\in R^{P\times N} A∈RPN 二、PCA特征 1、降低数据的维度 2、提取数据的特征…

imx6ull----IIC--AP3216C

概念 IIC总共有两条线&#xff0c;一条是 SCL(串行时钟线)&#xff0c;另外一条是 SDA(串行数据线)&#xff0c;这两条数据线需要接上拉电阻&#xff0c;总线空闲的时候 SCL 和 SDA 处于高电平。 I2C 总线标准模式下速度可以达到 100Kb/S&#xff0c;快速模式下可以达到 400Kb…

嵌入式Linux driver开发实操(十七):Linux Media Infrastructure userspace API

视频和无线电流媒体设备使用的Linux内核到用户空间API,包括摄像机、模拟和数字电视接收卡、AM/FM接收卡、软件定义无线电(SDR)、流捕获和输出设备、编解码器设备和遥控器。典型的媒体设备硬件如下: 媒体基础设施API就是用于控制此类设备的,分五个部分。 第一部分V4L2 API…