【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

写文章用哪个AI?2025年AI写作工具终极指南

写文章用哪个AI?2025年AI写作工具终极指南

写文章用哪个AI?2025年AI写作工具终极指南 前言:当你盯着空白文档时,AI正在盯着你 相信每个写作者都经历过这样的时刻:deadline如达摩克利斯之剑悬在头顶,Word文档里却只有一个闪烁的光标在嘲笑你的才华枯竭。这时候,你可能会想:“要是有个AI能帮我写就好了。” 好消息是,2025年的今天,AI写作工具已经从"能用"进化到"好用",甚至"离不开"的程度。坏消息是,选择太多也是一种甜蜜的负担。 一、主流AI写作工具横向对比 1. Claude(Anthropic)—— 学术派的温柔巨人 核心优势: * 长文本处理能力:支持20万+tokens的上下文,能一次性处理约15万字的内容 * 逻辑连贯性:在长篇文章写作中表现出色,结构清晰,论证严密 * 安全性高:内容审核严格,适合正式场合使用 适用场景: * 学术论文、研究报告 * 长篇商业文档

使用 LLaMA-Factory 微调 Qwen2.5 模型,并转换为 GGUF 格式部署

在开源大模型领域,Qwen 系列凭借强大的中文能力和友好的协议受到广泛欢迎。然而,直接使用基座模型往往无法满足特定业务场景的需求,需要通过微调来注入领域知识。微调后的模型如何高效部署?GGUF 格式是目前 llama.cpp 等推理后端广泛支持的格式,具有跨平台、内存映射等优点。本文将完整记录使用 LLaMA-Factory 微调 Qwen2.5-7B-Instruct 模型,并通过 llama.cpp 将微调后的模型转换为 GGUF 格式的全过程,并分享在转换过程中遇到的经典错误及其解决方案。 1.环境准备 我们在一台 Linux 服务器上操作,安装了 Conda 用于环境隔离。需要准备以下组件: Python 3.10 LLaMA-Factory(用于微调) llama.cpp(用于格式转换) transformers、peft、accelerate 等依赖库 1.1

Spec-Kit+Copilot打造AI规格驱动开发

Spec-Kit+Copilot打造AI规格驱动开发

作者:算力魔方创始人/英特尔创新大使 刘力 一,什么是Spec-Kit? 在传统的软件开发中,通常先有需求→ 写规格 → 再写代码;规格多数是“指导性文档”,而真正的业务逻辑和边界由程序员“翻译”出来。Spec-Driven Development(规格驱动开发)的理念是,将规格(spec)从“仅供参考”提升为可执行、可驱动的核心工件,直接引导后续设计、计划、任务拆解、实现等流程。spec-kit 是 GitHub 提供的一个工具集 / CLI / 模板库,用来在项目中落地这种流程! Github: https://github.com/github/spec-kit 二,搭建运行环境 本节将指导您从零开发搭建Spec-Kit的运行环境。 第一步:在Ubuntu24.04上安装uv: curl -LsSf

ChatGPT免费版与微软Copilot深度对比:技术选型与新手避坑指南

作为一名开发者,最近在项目里想集成一个AI助手,面对市面上眼花缭乱的选择,尤其是免费的ChatGPT和微软力推的Copilot,到底该选哪个?这确实是个让人纠结的问题。我花了一些时间,从技术实现、实际调用到性能表现,做了一次比较深入的对比和测试,希望能给同样有选择困难的朋友们一些参考。 1. 市场定位与典型场景:它们各自擅长什么? 简单来说,你可以把ChatGPT免费版看作一个“通用型对话专家”,而微软Copilot更像一个“深度集成在微软生态里的专业副驾驶”。 * ChatGPT免费版:它的核心优势在于强大的通用对话和文本生成能力。无论是头脑风暴、撰写邮件、学习新概念,还是进行开放式的创意讨论,它都能提供质量不错的回应。对于开发者而言,它非常适合用于: * 学习新技术:解释复杂的编程概念或算法。 * 代码解释与重构:将一段代码丢给它,让它解释逻辑或提出优化建议。 * 生成示例代码:根据自然语言描述,快速生成某个功能的代码片段原型。 * 微软Copilot:它的设计初衷就是提升开发和生产效率,与Visual Studio Code、GitHub、Micros