正则表达式测试 在线工具核心JS实现

简介: 本文介绍在线正则表达式测试工具的核心JS实现,基于Vue前端与独立`RegexHelper`类设计,支持匹配测试、高亮渲染、详情展示、文本替换及sed命令生成,并内置常用模板,兼顾安全(XSS防护)与性能(动态加载)。

正则表达式测试 在线工具核心JS实现

正则表达式是开发者日常工作中不可或缺的工具,但编写和调试正则往往比较繁琐。本文介绍正则表达式测试工具的核心JavaScript实现。

在线工具网址:https://see-tool.com/regex-tester
工具截图:
工具截图.png

整体架构

工具采用前后端分离架构,前端页面使用Vue开发,核心正则处理逻辑封装在独立的JavaScript类中。这种设计将业务逻辑与UI解耦,便于维护和复用。

核心类设计

整个工具的核心是 RegexHelper 类,所有功能都通过这个类暴露。主要包含以下几个核心方法:

1. 正则表达式测试

testRegex 方法负责执行正则匹配:

testRegex(pattern, testText, flags = {
   }) {
   
  const regex = new RegExp(pattern, flagsStr)

  if (flags.global) {
   
    matches = Array.from(testText.matchAll(regex))
  } else {
   
    const match = testText.match(regex)
    if (match) matches = [match]
  }

  return {
    regex, matches, isValid: true, error: null }
}

这里使用 JavaScript 内置的 RegExp 对象执行匹配。当启用全局标志 g 时,使用 matchAll 获取所有匹配;否则使用 match 获取第一个匹配。

2. 匹配结果高亮

highlightMatches 方法将匹配文本用HTML标签包裹,实现高亮效果:

highlightMatches(text, matches) {
   
  let result = ''
  let lastIndex = 0

  matches.forEach((match) => {
   
    result += this.escapeHtml(text.slice(lastIndex, match.index))
    result += `<span class="match-highlight">${
     this.escapeHtml(match[0])}</span>`
    lastIndex = match.index + match[0].length
  })

  result += this.escapeHtml(text.slice(lastIndex))
  return result
}

通过记录每次匹配的位置和长度,依次拼接非匹配文本和高亮后的匹配文本。escapeHtml 方法防止XSS攻击。

3. 匹配详情生成

generateMatchDetails 方法展示每个匹配的详细信息:

generateMatchDetails(matches) {
   
  matches.forEach((match, index) => {
   
    html += `<div>Match ${
     index + 1}:</div>`
    html += `<div>Full Match: ${
     match[0]}</div>`
    html += `<div>Position: ${
     match.index} - ${
     match.index + match[0].length - 1}</div>`

    if (match.length > 1) {
   
      for (let i = 1; i < match.length; i++) {
   
        html += `<div>Group $${
     i}: ${
     match[i]}</div>`
      }
    }
  })
}

包括完整匹配内容、位置索引、捕获组等信息。

4. 替换功能

performReplace 方法使用JavaScript原生的 String.replace 实现替换:

performReplace(regex, testText, replaceText) {
   
  return testText.replace(regex, replaceText)
}

支持 $1$2 等反向引用语法。

5. sed命令生成

工具还提供转换为Linux sed命令的功能,generateSedCommand 方法:

generateSedCommand(pattern, replacement, flags) {
   
  const escapedPattern = this.escapeSedString(pattern)
  const escapedReplacement = this.escapeSedString(replacement)
  return `sed 's/${
     escapedPattern}/${
     escapedReplacement}/g' input.txt`
}

需要对特殊字符进行转义,包括 /&$ 等。

模板系统

工具内置常用正则模板,包括邮箱、手机号、URL、IP地址等。模板数据结构如下:

{
   
  name: 'email',
  pattern: '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}',
  icon: 'fas fa-envelope',
  flags: ''
}

用户点击模板按钮即可快速填入对应正则。

动态加载

页面采用动态加载方式引入核心脚本:

const script = document.createElement('script')
script.src = '/js/regex-helper.js'
script.onload = initHelper
document.head.appendChild(script)

这种按需加载策略可以减少首屏加载时间。

总结

RegexHelper 类封装了正则表达式的核心功能,包括匹配测试、高亮显示、详情展示、替换操作和命令生成。通过清晰的方法划分和独立的类设计,实现了功能完整、易于维护的正则测试工具。

相关文章
|
8天前
|
Rust 安全 JavaScript
告别 `print()`!用 VS Code 调试器高效定位 Bug
本文手把手教你用VS Code调试器替代低效`print`:5步定位“越打折越贵”Bug,零代码侵入、实时查变量、支持条件断点与表达式监视。免费、高效、安全——调试本该如此简单!
|
6天前
|
JavaScript 安全
URL编码/解码 在线工具分享
分享一款自研的URL编码/解码在线工具(Vue开发),支持encodeURI与encodeURIComponent两种模式。粘贴即转、一键复制,界面清爽无广告,附使用说明与编码对照表,轻松处理中文及特殊字符。
615 2
|
3天前
|
缓存 运维 监控
从踩坑到高效落地:淘宝天猫商品详情API的实操心得
本文分享淘宝天猫商品详情API从踩坑到高效落地的实战经验,涵盖准入权限避坑、签名与调用规范、异常处理、缓存优化、批量调度及监控运维等关键环节,助开发者快速稳定接入,提升开发效率与系统稳定性。(239字)
|
3天前
|
人工智能 缓存 安全
OpenClaw“2小时消耗100美元”?OpenClaw/Clawdbot降本攻略:5个Token节省Skills教程(立省97%成本)
“2小时消耗100美元”“月账单3600美元”——这是不少OpenClaw用户面临的真实痛点。随着AI Agent的高频使用,Token消耗成本居高不下,成为制约高效使用的关键瓶颈。但同样是使用OpenClaw,部分用户能实现每月近乎零成本运行,核心秘诀就在于合理运用Token优化Skill。
633 1
|
3天前
|
人工智能 自然语言处理 机器人
保姆级教程:Mac本地搭建OpenClaw及阿里云上1分钟部署OpenClaw+飞书集成实战指南
OpenClaw(曾用名Clawdbot、Moltbot)作为2026年最热门的开源个人AI助手平台,以“自然语言驱动自动化”为核心,支持对接飞书、Telegram等主流通讯工具,可替代人工完成文件操作、日历管理、邮件处理等重复性工作。其模块化架构适配多系统环境,既可以在Mac上本地化部署打造私人助手,也能通过阿里云实现7×24小时稳定运行,完美兼顾隐私性与便捷性。
1965 4
|
1天前
|
人工智能 安全 Docker
OpenClaw(Clawdbot)Windows本地及阿里云上部署+12大热门场景自动化,小白零门槛上手
2026年,AI代理框架OpenClaw(原Clawdbot)凭借“全场景自动化+低门槛操作”成为现象级工具,能将工作、生活中的琐事一键自动化——从邮件管理、日程规划到智能家居控制、代码开发,无需复杂编程,通过自然语言指令即可实现。但多数用户卡在“部署配置”或“功能落地”环节,殊不知2026年阿里云部署已简化至10分钟完成,Windows本地搭建支持一键安装,搭配12个社区热门实战场景,零基础也能快速解锁全能力。
|
1天前
|
人工智能 JavaScript 安全
阿里云+Windows本地部署OpenClaw全栈指南:集成8大开源Dashboard,告别管理混乱
2026年,OpenClaw(原Clawdbot)作为自托管AI代理框架,凭借开源可控、全场景自动化的优势,已成为个人提效与企业数字化转型的核心工具。但随着多Agent协作、技能插件增多,用户普遍面临“管理混乱”的痛点——十几个AI Agent同时运行,成本莫名飙升,却查不到资源消耗源头;定时任务卡死、配置文件杂乱,终端命令零散难控。
169 4
|
1天前
|
人工智能 API 网络安全
2026年OpenClaw Windows本地+阿里云部署:附Friendli.ai免费GLM5/MiniMax M2.5对接喂饭级教程
2026年AI大模型生态迎来新突破,Friendli.ai平台免费开放GLM 5、MiniMax M2.5等主流大模型的无限制使用权限,还提供标准API接口,可无缝对接OpenClaw(原Clawdbot)这款开源AI自动化工具。结合OpenClaw的轻量化部署、多场景自动化能力,能让普通用户零成本拥有“大模型能力+自动化执行”的专属AI助手。
|
1天前
|
人工智能 机器人 网络安全
2026年OpenClaw(Clawdbot)阿里云+Windows本地零基础搭建:+1分钟集成QQ/钉钉/微信/飞书保姆级教程
2026年,AI智能体已经全面进入办公与生活自动化时代,OpenClaw(原Clawdbot)凭借轻量化部署、多平台兼容、全场景自动化能力,成为个人与团队首选的开源AI助手。它可以在云端或本地7×24小时运行,通过自然语言完成文件处理、信息检索、定时任务、流程自动化,更能一键接入QQ、钉钉、企业微信、飞书等主流通讯工具,让聊天窗口变成你的AI指挥中心。
|
16小时前
|
人工智能 安全 网络安全
从部署到精通:OpenClaw阿里云+本地安装保姆级教学与必装10个核心Skill解析
很多用户部署OpenClaw后,仅将其当作普通聊天工具,觉得“功能平平”,实则是未挖掘其核心价值——Skill(技能插件)。OpenClaw的本质是可拓展的AI生产力平台,Skill则是赋予其“执行力”的关键,能将AI从“聊天工具”升级为“虚拟员工”,覆盖自动化办公、知识管理、开发协作等全场景。
90 2

热门文章

最新文章