恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

JavaScript 正则词边界 \b 深度实战:从 Modern JavaScript Tutorial 的 HH:MM 时间查找任务说起

  • 首页
  • 资讯中心
  • /
  • JavaScript 正则词边界 \b 深度实战:从 Modern JavaScript Tutorial 的 HH:MM 时间查找任务说起

相关资讯

2026年下半年AI论文写作工具最新榜单,学术写作工具全面测评 2026/10/7 21:15:37
Alluxio 接入 MinIO 底层存储完整指南:s3:// 协议配置、验证与故障排查 2026/10/7 21:15:37
text-to-cad实战:从自然语言到STEP模型的完整链路与踩坑指南 2026/10/7 21:15:37

最新资讯

SECS/GEM通信实战:从协议栈搭建到真实设备联调
行为驱动防御:基于MITRE ATTCK重塑安全运营核心逻辑
内网自建CA根证书服务器实战:从规划到签发部署全流程
从提示词到技能库:用AI Agent重构营销工作流
iOS开发者模式与真机调试完整指南:从证书配置到Xcode部署
VR产品总监实战指南:从体验基线到跨团队流程优化

今日推荐

SSD不认盘怎么修?金士顿SV300板级排查与短接ROM进工厂模式
Unity 3D RPG开发:C#状态机与物理更新时机实战指南
AIoT开发工程师岗位全景:从嵌入式Linux到边缘计算与端侧AI部署

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

JavaScript 正则词边界 \b 深度实战:从 Modern JavaScript Tutorial 的 HH:MM 时间查找任务说起

发布时间:2026/10/7 21:15:37
JavaScript 正则词边界 \b 深度实战:从 Modern JavaScript Tutorial 的 HH:MM 时间查找任务说起 文档/教程前端【免费下载链接】en.javascript.infoModern JavaScript Tutorial项目地址https://gitcode.com/gh_mirrors/en/en.javascript.info点击查看免费下载本指南以 Modern JavaScript Tutorialen.javascript.info正则表达式章节中的词边界word boundary练习为核心系统讲解\b的判定原理、三种边界位置、与数字结合的用法及其对非拉丁字母的局限并逐层拆解 查找 HH:MM 格式时间 任务的题意与官方题解帮助读者掌握用\b精确定位独立词与独立数字片段的实战能力。练习定位仓库中的词边界章节在仓库的9-regular-expressions/06-regexp-boundary目录下包含了完整的词边界教学章节与配套练习章节正文article.md系统讲解\b的定义、三种边界位置与使用示例配套练习1-find-time-hh-mm子目录包含 task.md任务描述与 solution.md官方题解。本练习是词边界知识点的首个实战任务用于验证读者是否真正理解了\b作为零宽断言zero-width assertion的语义——它不消耗任何字符只在特定位置上做条件判断。词边界\b是什么一种位置测试与^字符串开头和$字符串结尾一样\b也是一种测试test而不是匹配某个具体字符的模式。当正则引擎负责执行正则搜索的程序模块遇到\b时它会检查当前字符串位置是否恰好是一个词边界。按照章节原文共有三种位置满足词边界条件字符串开头且第一个字符是词字符\w字符串内部两个字符之间一侧是词字符\w另一侧不是字符串结尾且最后一个字符是词字符\w。其中\w指拉丁字母a-z含大写、数字0-9和下划线_。换句话说\b要求当前位置两侧恰好一边是词字符、一边是非词字符或字符串边界。经典示例\bJava\b考虑字符串subject:Hello, Java!pattern:\bJava\b能匹配其中的独立单词Java但不会匹配subject:Hello, JavaScript!中的Java因为Java后面紧跟着词字符S不存在边界。alert( Hello, Java!.match(/\bJava\b/) ); // Java alert( Hello, JavaScript!.match(/\bJava\b/) ); // null在字符串Hello, Java!中下列位置恰好对应\b因此模式pattern:\bHello\b也能匹配成功匹配过程如下字符串开头匹配第一个\b首字符H是词字符接着匹配单词Hello在o与逗号之间再次命中\b一侧是词字符o另一侧是逗号。所以\bHello\b匹配成功而\bHell\b匹配失败l之后紧跟着o没有边界\bJava!\b同样失败感叹号不是词字符\wJava!内部不存在边界。alert( Hello, Java!.match(/\bHello\b/) ); // Hello alert( Hello, Java!.match(/\bJava\b/) ); // Java alert( Hello, Java!.match(/\bHell\b/) ); // null (no match) alert( Hello, Java!.match(/\bJava!\b/) ); // null (no match)\b与数字结合匹配独立的两位数\b不仅能用于单词同样适用于数字。章节中给出的核心示例是pattern:\b\d\d\b——查找独立的两位数即两侧被非\w字符空格、标点、字符串开头/结尾包围的两位数。alert( 1 23 456 78.match(/\b\d\d\b/g) ); // 23,78 alert( 12,34,56.match(/\b\d\d\b/g) ); // 12,34,56在1 23 456 78中23两侧是空格、78位于字符串结尾均满足边界条件而456中的45与56因紧邻\w字符而被排除在12,34,56中逗号属于非\w字符因此三个两位数全部命中。这里使用了g标志全局搜索让.match()返回所有匹配结果组成的数组。这正是解决 HH:MM 时间查找任务的核心技巧基础。重要局限\b不适用于非拉丁字母章节末尾专门给出了一条警告\b的判定依赖\w而\w仅涵盖拉丁字母、数字和下划线。因此对西里尔字母、汉字等非拉丁字符\b无法正常工作。例如中文文本中上午09点这类场景\b可能不会在汉字与数字之间判定出边界。遇到多语言文本时应改用显式的字符类断言如(?!\w)/(?!\w)或结合 Unicode 属性替代\b这一点在处理国际化文本时尤其重要。任务原文与需求拆解练习1-find-time-hh-mm的任务描述如下时间采用hours:minutes格式小时和分钟都是两位数例如09:00。 编写一个正则表达式在字符串Breakfast at 09:00 in the room 123:456.中查找时间。 P.S. 本任务暂时无需校验时间的正确性因此25:99也可以视为合法结果。 P.P.S. 正则表达式不应匹配123:456。拆解需求可以得到三个关键约束格式约束小时:分钟均为恰好两位数字即形如\d\d:\d\d边界约束时间必须是字符串中的独立片段不能被其他数字字符粘连——这正是排除123:456的关键正确性约束本阶段不校验时间是否真实有效25:99也算合法因此无需引入小时/分钟范围判断。陷阱点在于字符串中同时存在09:00与123:456后者内部包含形如23:45的片段若只写\d\d:\d\d而不加边界约束就会错误命中123:456中的23:45。官方题解/\b\d\d:\d\d\b/仓库中的官方题解给出了答案alert( Breakfast at 09:00 in the room 123:456..match( /\b\d\d:\d\d\b/ ) ); // 09:00模式由三部分组成\b左侧词边界要求冒号前的第一个数字前不是词字符\d\d:\d\d两位数字、冒号、两位数字\b右侧词边界要求冒号后的第二个数字后不是词字符。为什么不会匹配123:456让我们跟随正则引擎的匹配过程分析候选片段23:45来自123:456其左侧是字符1。1属于\w因此在1与2之间不存在词边界左侧的\b判定失败整个候选被拒绝引擎继续尝试从3开始匹配但3之后是冒号不足两个数字无法构成\d\d:\d\d因此123:456被整体排除。而09:00的左侧是空格、右侧也是空格后接句点前的空格两侧都满足\b条件匹配成功。若使用全局标志/\b\d\d:\d\d\b/g在包含多个时间的字符串中可以一次性取出全部合法时间片段例如Meet at 09:00, lunch at 12:30, see 123:456.match(/\b\d\d:\d\d\b/g); // [09:00, 12:30]扩展思考从边界控制到时间正确性校验本任务刻意省略了时间正确性校验25:99也合法。如果需要进一步校验小时与分钟范围可以在\b\d\d:\d\d\b的基础上把数字部分替换为带范围的模式例如小时00-23([01]\d|2[0-3])分钟00-59[0-5]\d组合后的完整模式形如/\b([01]\d|2[0-3]):[0-5]\d\b/。需要注意的是这是练习题之外的进阶方向仓库原文并未包含此实现读者可将其作为课后延伸自行验证。另一个值得注意的对比是\b与字符串锚点^、$的关系。^与$只作用于字符串首尾而\b作用于字符串内部的每个词/非词交界处二者定位粒度不同。当需要把时间限制在整段文本的开头或结尾时可组合使用例如^\d\d:\d\d$用于校验整个字符串就是一个时间。仓库参考路径汇总章节正文9-regular-expressions/06-regexp-boundary/article.md任务描述9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/task.md官方题解9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/solution.md边界位置示意图9-regular-expressions/06-regexp-boundary/hello-java-boundaries.svg正则表达式章节总览9-regular-expressions/index.md本文所有示例与结论均可直接在仓库对应文件中复现验证先通读 article.md 理解\b语义再动手运行题解中的.match()调用即可完整掌握用词边界精确锁定独立时间片段这一实战技能。赞分享文档/教程前端【免费下载链接】en.javascript.infoModern JavaScript Tutorial项目地址https://gitcode.com/gh_mirrors/en/en.javascript.info点击查看免费下载相关推荐JavaScript 正则表达式 \b 单词边界实战用 \b\d\d:\d\d\b 精确匹配 HH:MM 格式时间JavaScript 正则表达式 \b 单词边界实战用 \b\d\d:\d\d\b 精确匹配 HH:MM 格式时间 导读 本篇围绕 en.javascript文档/教程前端Modern JavaScript Tutorial 任务实战用 JavaScript 编写 min(a, b) 求两数最小值Modern JavaScript Tutorial 任务实战用 JavaScript 编写 min a, b 求两数最小值 本篇文章围绕《Modern Ja文档/教程前端JavaScript 正则表达式中的词边界 \b 详解JavaScript 正则表达式中的词边界 \b 详解 正则表达式是 JavaScript 中强大的文本处理工具而词边界 \b 是一个经常被忽视但非常有用的元文档教程前端上一篇如何在macOS上完美使用Xbox游戏手柄终极兼容性优化指南下一篇PaddleClas 核心功能深度解析实用图像识别系统、预训练模型库与特征学习组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号