跳转到内容

正则可视化 RegexVis

RegexVis 适合正则教学、规则配置和开发工具场景。组件会将字符、字符范围、断言、捕获组、前后行断言与分支转换为 SVG 铁路图;复杂表达式超出容器宽度时可横向滚动。

可视图的背景、节点、连线、选中态、焦点态与错误态均使用 sd-design 语义 token,同一套样式会自动适配浅色和暗色主题。解析器能力内化自 MIT 许可的 regex-vis,不会引入 React、Jotai 或 Radix 等运行时依赖。

使用 v-model 绑定表达式,使用 v-model:flags 绑定正则标志。输入无效表达式时,图形区会直接给出错误信息。

隐藏输入区并启用只读模式,可把 RegexVis 用作纯展示型解释图。分组和分支使用嵌套轨道表达结构关系。

由外部切换表达式时,可视图与校验状态会同步更新。错误反馈使用文字和危险色共同表达,不依赖颜色传递信息。

通过 emptyerrorfooter 插槽定制空状态、错误内容及底部说明。

参数 描述 类型 默认值
model-value / v-model ECMAScript 正则表达式 string ''
flags / v-model:flags 正则标志 RegexVisFlag[] []
readonly 是否禁止修改表达式和标志 boolean false
show-input 是否显示正则输入框 boolean true
show-flags 是否显示正则标志选项 boolean true
selectable 是否允许通过鼠标或键盘选择图形节点 boolean true
placeholder 输入框占位文本 string '请输入正则表达式,例如 ^[a-z]+$'
empty-text 默认空状态文本 string '输入正则表达式后将在这里生成可视图'
aria-label SVG 可视图的无障碍名称 string '正则表达式可视图'

RegexVisFlag 可为 'd' | 'g' | 'i' | 'm' | 's' | 'u' | 'y'。默认标志面板展示常用的 gimsuy

事件 描述 参数
update:modelValue 表达式变化时触发 (value: string)
update:flags 正则标志变化时触发 (flags: RegexVisFlag[])
select 选择图形节点时触发 (info: RegexVisSelectInfo)
error 校验状态变化时触发,无错误时参数为 undefined (error?: RegexVisError)
插槽 描述 参数
empty 自定义空状态 { text: string }
error 自定义错误状态 { error: RegexVisError }
footer 自定义底部说明 { value: string, flags: RegexVisFlag[] }