【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程”

在这里插入图片描述

文章目录

JavaScript 正则表达式详解

正则表达式是处理字符串的强大工具,在 JavaScript 中被广泛应用于表单验证、文本处理和数据提取等场景。本文将从正则表达式的基本概念出发,详细介绍其语法规则和实际应用方法。

什么是正则表达式🤔

正则表达式是用于匹配字符串中字符组合的模式,在 JavaScript 中以对象形式存在。它主要用于:

  • 验证表单输入(如限制只能输入特定字符)
  • 过滤文本中的敏感词
  • 从字符串中提取特定信息

JavaScript 正则表达式的定义与使用🥝

在 JavaScript 中,定义正则表达式有两种方式:

1. 字面量语法

const 规则变量名 =/表达式/;

2. 常用匹配方法

test() 方法🍋‍🟩

用于检测字符串是否符合正则表达式规则,返回布尔值:

const find =/前端/;const str ="我们在学习前端,希望突击前端赶大项目的进度"; console.log(find.test(str));// true(字符串中包含"前端")
exec() 方法🍋‍🟩

在字符串中执行匹配搜索,返回匹配结果数组或 null:

console.log(find.exec(str));// 返回包含"前端"的数组

正则表达式的核心组成部分🐦‍🔥

1. 元字符

元字符是具有特殊含义的字符,可分为以下几类:

边界符

用于指定字符的位置:

  • ^:表示匹配行首的文本(以指定字符开始)
  • $:表示匹配行尾的文本(以指定字符结束)

^$ 一起使用时,表示精确匹配:

console.log(/^哈$/.test("哈"));// true(精确匹配单个"哈") console.log(/^哈$/.test("哈哈"));// false(不是单个"哈")
量词

用于指定字符出现的次数:

  • *:重复 0 次或更多次
  • +:重复 1 次或更多次
  • ?:重复 0 次或 1 次
  • {n}:重复 n 次
  • {n,}:重复 n 次或更多次
  • {n,m}:重复 n 到 m 次(注意逗号两侧不能有空格)

示例:

console.log(/^哈{2}$/.test("哈哈"));// true(正好出现2次) console.log(/^哈{2,4}$/.test("哈哈哈哈"));// true(出现4次,在2-4范围内) console.log(/^哈{2,}$/.test("哈哈哈哈"));// true(出现4次,不少于2次)
字符类

用于匹配一类字符:

  1. []:匹配字符集合中的任意一个字符
console.log(/[abc]/.test("andy"));// true(包含"a") console.log(/[abc]/.test("die"));// false(不包含a、b、c中任何一个)
  1. 连字符 -:表示一个范围
console.log(/^[a-z]$/.test("p"));// true(小写字母) console.log(/^[A-Z]$/.test("B"));// true(大写字母) console.log(/^[0-9]$/.test("2"));// true(数字)
  1. 取反符号 ^:在 [] 内使用,表示匹配除指定字符外的任意字符
console.log(/^[^a-zA-Z0-9]$/.test("!"));// true(非字母数字)
  1. 预定义字符类:常见模式的简写
    • \d:匹配 0-9 之间的任意数字(相当于 [0-9]
    • \D:匹配非数字(相当于 [^0-9]
    • \w:匹配字母、数字和下划线(相当于 [A-Za-z0-9_]
    • \W:匹配非字母、数字和下划线
    • \s:匹配空格(包括换行符、制表符等)
    • \S:匹配非空格字符

2. 修饰符

修饰符用于约束正则表达式的执行行为:

  • i:忽略大小写(ignore)
  • g:全局匹配(global)

示例:

// 忽略大小写 console.log(/a/i.test("A"));// true console.log(/^java$/i.test("JAVA"));// true// 全局替换const str2 ="我草,整个沧南市都因林七夜一人而存在,我草";const ret2 = str2.replace(/我草/g,"**");// 替换所有匹配项 console.log(ret2);// "**,整个沧南市都因林七夜一人而存在,**"

简单示例🍂

表单验证

// 验证QQ号(从10000开始)const qqReg =/^[1-9][0-9]{4,}$/;// 验证日期格式(yyyy-mm-dd)const dateReg =/^\d{4}-\d{1,2}-\d{1,2}$/;

如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!

在这里插入图片描述

Read more

最新TRO 2026|G3M:Graph-to-Graphs Generative Modeling 用视频预训练机器人操作

最新TRO 2026|G3M:Graph-to-Graphs Generative Modeling 用视频预训练机器人操作

最新TRO 2026|G3M:Graph-to-Graphs Generative Modeling 用视频预训练机器人操作 论文:Learning From Videos Through Graph-to-Graphs Generative Modeling for Robotic Manipulation 期刊:IEEE Transactions on Robotics (TRO 2026) 单位:北京理工大学 DOI: 10.1109/TRO.2026.3658211 👉 文章链接: https://mp.weixin.qq.com/s/JpGoPAcJpJujJ2uGbee6fQ 我在里面做了更详细的模块拆解与实验分析。 一、问题背景:视频数据能不能替代昂贵的机器人动作数据? 在机器人模仿学习(Imitation Learning)中,一个核心瓶颈是:

无人机避障新思路:手把手教你用APF-RRT*算法实现高效轨迹规划(附Python代码)

无人机避障新思路:手把手教你用APF-RRT*算法实现高效轨迹规划(附Python代码) 去年夏天,我在一个无人机巡检项目里遇到了一个棘手的问题:传统的RRT算法在复杂林地环境中规划路径时,经常“卡”在密集的树木之间,要么采样效率低下导致规划时间过长,要么生成的路径曲折得让无人机像喝醉了一样左右摇摆。团队尝试了各种参数调整,效果都不理想。直到我们把人工势场法的引导机制引入到双向RRT*算法中,情况才发生了根本性转变——不仅规划速度提升了近70%,生成的路径也平滑了许多。 这种结合了APF(人工势场法)和双向RRT的混合算法,如今已经成为许多无人机开发者解决复杂环境路径规划的秘密武器。它巧妙地将APF的方向引导优势与RRT的渐进最优特性结合起来,同时利用双向搜索大幅提升收敛速度。今天,我就从工程实践的角度,带你一步步实现这个算法,分享我在实际项目中积累的参数调优经验,并提供可直接运行的Python代码。 1. 理解APF-RRT*算法的核心思想 在开始写代码之前,我们需要先弄清楚这个混合算法到底解决了什么问题。传统的RRT算法虽然概率完备,但在复杂环境中存在明显的局限性:随机采

【论文翻译】YOLO26: KEY ARCHITECTURAL ENHANCEMENTS AND PERFORMANCE BENCHMARKING FOR REAL-TIME OBJECT DETEC

【论文翻译】YOLO26: KEY ARCHITECTURAL ENHANCEMENTS AND PERFORMANCE BENCHMARKING FOR REAL-TIME OBJECT DETEC

YOLO26:实时目标检测的关键架构改进与性能基准测试 摘要 本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其在实时边缘目标检测领域的关键架构改进与性能基准测试结果。YOLO26于2025年9月发布,是YOLO系列中最新、最先进的模型,专为在边缘设备和低功耗设备上实现高效能、高精度和部署就绪性而设计。论文依次详细介绍了YOLO26的架构创新,包括移除分布焦点损失(DFL)、采用端到端无非极大值抑制(NMS)推理、集成渐进式损失(ProgLoss)和小目标感知标签分配(STAL),以及引入MuSGD优化器以实现稳定收敛。除架构外,该研究将YOLO26定位为多任务框架,支持目标检测、实例分割、姿态/关键点估计、旋转检测和分类任务。我们在NVIDIA Jetson Nano和Orin等边缘设备上对YOLO26进行了性能基准测试,并将其结果与YOLOv8、YOLOv11、YOLOv12、YOLOv13以及基于Transformer的检测器进行了对比。论文进一步探讨了实时部署路径、灵活的导出选项(ONNX、TensorRT、CoreML、TFLite)以及INT8/

【Web3】NFT 元数据去中心化存储与智能合约集成实战

【Web3】NFT 元数据去中心化存储与智能合约集成实战

在开发非同质化代币(NFT)项目时,资产数据的安全性与不可篡改性是核心考量指标。为防止底层数据受到中心化机构的人为干预,业界普遍采用去中心化网络来托管核心资产。本文将结合实际工程流,深入探讨 NFT 元数据(Metadata)的存储逻辑,并提供与之匹配的智能合约集成方案。 笔记来自:17小时最全Web3教程:ERC20,NFT,Hardhat,CCIP跨链_哔哩哔哩_bilibili,十分推荐大家学习该课程! 目录 一、 深入解析通证生态与 NFT 元数据机制 1. 通证生态解析 2. NFT构建与元数据机制 二、 以太坊存储困境与去中心化网络选型 三、 基于 IPFS 的元数据(Metadata)构建流 四、 智能合约集成与 Remix 快捷部署 一、 深入解析通证生态与 NFT 元数据机制 1. 通证生态解析 资产在区块链上的数字化表达主要分为同质化通证与非同质化通证。