【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

拒绝等距透视手绘地狱!AIGC联动2D图像巨头:2.5D次世代废墟建筑极速量产

拒绝等距透视手绘地狱!AIGC联动2D图像巨头:2.5D次世代废墟建筑极速量产

晚上九点半,绝大多数工位都已经熄灯。唯独2D场景美术组的区域,灯火通明,气氛压抑得仿佛能拧出水来。 “这透视完全是崩的啊!”主美指着画面中一栋长满变异植物的废弃钟楼,气得直拍桌子,“设定上这是正规的2.5D战术视角!也就是严格的26.565度等距透视!你看看这些建筑的底座,全都是歪的!还有这个全局光照,左边的建筑光源从左上角打过来,右边的废墟阴影居然在右边!几十个建筑放在一张大地图上,就像是从不同游戏里强行拼凑出来的廉价贴纸,连最基础的受光面统一都做不到!周末场景组必须全部推翻重来。下周一早会,我要看到透视严丝合缝、光影绝对统一、地表过渡自然的废墟建筑群!” 坐在我旁边的原画妹子小林,看着数位板上那张还没画完、布满了几十条复杂透视辅助线的废墟草图,绝望地趴在了桌子上。 只要是做过2D场景,尤其是“等距透视”战术地图的兄弟们都懂,这玩意简直是2D美术管线里的“万恶之源”。如果你按照传统的纯手绘工作流:首先,你得在画布上建一个密密麻麻的2:1菱形网格;然后,所有的建筑线条都必须死死地卡在这个网格上,稍微偏一两个像素,进到游戏引擎里拼接时就会出现可怕的裂缝。好不容易把建筑线稿抠准了,到

VSCode AI Copilot 智能补全失效?(错误修正终极手册)

第一章:VSCode AI Copilot 智能补全失效?(错误修正终极手册) 检查网络连接与认证状态 AI Copilot 依赖稳定的网络连接以访问云端模型服务。若补全功能无响应,首先确认是否已登录 GitHub 账户并正确授权。 * 打开 VSCode 命令面板(Ctrl+Shift+P) * 输入并执行 Copilot: Sign in to GitHub * 在浏览器中完成授权后返回编辑器查看状态栏 状态栏应显示“Copilot 已启用”,否则可能因令牌过期导致服务中断。 验证扩展安装与版本兼容性 确保安装的是官方 GitHub Copilot 扩展而非第三方插件。 # 在终端中检查已安装扩展 code --list-extensions | grep -i copilot # 正确输出应包含: # GitHub.copilot # GitHub.copilot-chat (可选) 若缺失,通过扩展市场重新安装或使用命令行:

2026年最强AI写网文工具深度测评:ai写小说软件与AI写作平台全面对比

2026年最强AI写网文工具深度测评:ai写小说软件与AI写作平台全面对比

进入2026年,AI写作市场已经从“野蛮生长”步入了“精耕细作”的阶段。对于网文作者、短剧编剧以及漫剧创作者而言,现在的痛点早已不是“找不到AI工具”,而是“找不到能真正帮自己赚到钱的AI工具”。 市面上的大模型和写作软件多如牛毛,有的主打底层算力,有的主打现成模板。为了帮助大家避开商业化写作中的各种“暗坑”(如高昂的订阅费、平台AI查重退稿等),我们从底层逻辑推演、长文本连贯性、文本拟人度(防检测)、生态闭环与使用成本五个维度,对目前市面上最热门的四款工具——DeepSeek、豆包、笔灵AI、炼字工坊,进行了一次全方位、多角度的硬核排位测评。 一、 核心测评对象与定位 1. 通用算力天花板:DeepSeek —— 以强大的代码和逻辑推演能力霸榜的通用大模型。 2. 国民级灵感助手:豆包 (Doubao) —— 主打便捷交互、语音输入的轻量级AI。 3. 老牌模板化写作工具:笔灵AI —— 较早切入AI写作赛道,依靠预设模板库吸引用户的垂直软件。 4. 全链路商业变现新锐:

Lostlife2.0下载官网整合LLama-Factory引擎,增强NPC对话逻辑

Lostlife2.0整合LLama-Factory引擎,重塑NPC对话逻辑 在文字冒险游戏的世界里,玩家最怕什么?不是任务太难,也不是剧情平淡——而是和一个“话术机械、反应呆板”的NPC对话时,那种瞬间出戏的割裂感。明明世界观设定是末世废土,结果NPC张口就是“绝绝子”“破防了”,这种语言风格的崩塌足以让沉浸感荡然无存。 《Lostlife2.0》作为一款以深度叙事和角色互动为核心卖点的文字冒险游戏,在开发过程中就直面了这一难题。早期版本中,NPC的对话依赖传统的决策树系统:每句台词都由编剧手动编写,每个分支都需要精确配置。这不仅导致内容维护成本极高,更带来了“选项爆炸”问题——新增一条剧情线,往往要额外添加数十个节点,最终形成一张难以管理的复杂网络。 真正的转机出现在团队引入 LLama-Factory 之后。这个开源的大模型微调框架,原本主要用于科研与企业级AI定制,但《Lostlife2.0》团队敏锐地意识到:它或许能成为解决NPC智能瓶颈的关键工具。通过将LLama-Factory深度集成到开发流程中,他们成功构建了一套动态、可进化、风格一致的对话生成系统,彻底改变了传