正则、cron、时间戳、URL 编码和代码格式化工具是每位开发者的日常工具。最重要的 5 点:
(?<name>) 而非 (?P<name>)。Date.now() 返回毫秒。encodeURIComponent(),绝不要用 encodeURI()。最好的开发者工具是那种随时可用的——无需安装、无需账户、无需等待。本指南涵盖开发者每周要用上几十次的日常工具:测试正则表达式、构建 cron 计划、转换时间戳、编码 URL,或格式化 SQL 查询。每个工具都完全在你的浏览器中运行,在本地处理你的数据,绝不发送到任何服务器。
正则表达式(regex)是开发者工具箱中最强大的工具之一。一个正则模式可以校验邮箱地址、从日志文件中提取数据,或用一行代码完成复杂的查找替换操作。
JavaScript 正则风格:我们的 正则测试器使用 JavaScript 内置的 RegExp 引擎,它是 Web 开发和 Node.js 的标准。
标志位:g(全局)、i(忽略大小写)、m(多行)、s(dotall)、u(Unicode)。大多数场景下,gi 是合适的组合。
捕获组:(pattern) 捕获一个组;(?:pattern) 分组但不捕获;(?<name>pattern) 为捕获命名。
常见模式:邮箱:/^[\w.-]+@[\w.-]+\.[a-z]{2,}$/i。UUID:/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i。
标准 cron 表达式有 5 个字段:分(0–59)、时(0–23)、日(1–31)、月(1–12)和周几(0–7)。
特殊字符:* 表示每个值。*/n 表示每第 n 个值。a-b 表示一个范围。a,b,c 表示具体的几个值。
常见计划——每分钟:* * * * * 每天 UTC 午夜:0 0 * * * 每周一上午 9 点:0 9 * * 1 每个工作日下午 6 点:0 18 * * 1-5。
6 字段 cron:AWS EventBridge、Spring Boot 和 Quartz 会增加一个秒字段。我们的 Cron 表达式生成器同时支持 5 字段和 6 字段两种变体。
时区陷阱:云调度器(AWS EventBridge、GitHub Actions 计划)按 UTC 运行。设定在本地时间上午 9 点触发的任务,会因夏令时的不同而在不同的 UTC 小时触发。
Unix 时间戳记录自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数。它是 API、数据库和日志文件中表示时间点的通用语言。
秒 vs 毫秒:10 位的数字几乎可以肯定是秒(例如 1700000000 = 2023 年 11 月)。13 位的数字是毫秒。JavaScript 的 Date.now() 返回毫秒;Python 的 time.time() 返回秒。我们的 时间戳转换器会自动检测精度。
2038 年问题:32 位有符号整数只能表示到 2038 年 1 月 19 日的时间戳。用 32 位整数存储时间戳的系统会在那一天溢出。64 位系统可以表示到大约 2920 亿年。
用 ISO 8601 表示可读时间戳:在 JSON 载荷和日志文件中始终使用 ISO 8601 格式(2024-01-15T10:30:00Z)。避免使用 01/15/2024 这类依赖地区的格式。
URL 只能直接包含一组有限的 ASCII 字符。超出这组范围的字符必须进行百分比编码:用 % 加两位十六进制码替换。空格变成 %20,& 变成 %26。
encodeURI vs encodeURIComponent:encodeURI() 编码完整的 URL,保留具有结构意义的字符。encodeURIComponent() 编码 URL 的一个组成部分(单个查询参数值),几乎会编码所有字符,包括 & 和 =。
最常见的 bug:对查询参数值使用 encodeURI(),会让 & 未被编码从而破坏查询字符串。单个参数值请始终使用 encodeURIComponent()。
重复编码:对已编码的字符串再次编码会得到 %2520 而不是 %20。如果不确定输入是否已编码,请先解码一次再重新编码。
两个最常见的原因是:Python 的 re 模块使用不同的正则风格,且命名组的语法不同——JavaScript 需要把 (?P<name>) 改成 (?<name>)。
使用 */15 9-17 * * 1-5。*/15 在第 0、15、30、45 分钟运行;9-17 限定在工作时间;1-5 限定为周一到周五。用我们的 Cron 生成器可视化地构建并验证它。
使用我们的 时间戳转换器——它会实时更新显示当前时间戳。在代码中:JavaScript 用 Math.floor(Date.now() / 1000) 取秒,Python 用 import time; time.time()。
& 字符是查询字符串的分隔符。如果你的参数值里含有字面的 &,就必须把它百分比编码为 %26。用我们的 URL 编码工具的组件模式,可正确编码单个参数值。
选定一种风格,并用 linter 强制执行。最常见的约定是关键字大写(SELECT、FROM、WHERE),且每个子句独占一行。我们的 SQL 格式化工具会应用一致的格式,并支持可配置的关键字大小写。