You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写仅支持单条单行有效SSH密钥校验的正则表达式

调整后正则

你可以直接使用下面修改后的正则,完全满足单条单行SSH密钥的校验要求:

const publicSshKeyRegex = /^(ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+/]+[=]{0,3}(\s[^\n]*)?$/;

改动说明

主要针对你原来的正则做了核心调整:

  • 把原正则末尾的(\n|$)替换为$,强制正则匹配整个输入字符串的结尾,不会出现只匹配换行前第一条密钥就通过校验的问题
  • 把原正则中匹配注释的(\s.*)?调整为(\s[^\n]*)?,限制密钥后的注释内容不能包含换行符,彻底阻断多行输入的可能性
  • 整个正则从头到尾严格匹配单条密钥格式,天然禁止了同时提交多条密钥的情况

如果要进一步提升可靠性,也可以在校验正则之前先判断输入内容是否包含\n换行符,有换行直接拦截,双重校验更稳妥。


内容的提问来源于stack exchange,提问作者Mahmudul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:27:04