实现示例function validName(n: string): boolean { if (n.length < 1 || n.length > 214) return false if (/\s/.test(n)) return false if (n.startsWith('.')) return false if (/^[._]/.test(n)) return false if (/[A-Z]/.test(n)) return false if (/[^a-z0-9@_\-./]/.test(n)) return false if (n.includes('..')) return false if (/^@/.test(n)) { const parts = n.split('/') if (parts.length !== 2) return false if (!/^@[a-z0-9_\-]+$/.test(parts[0])) return false if (!/^[a-z0-9_\-][a-z0-9_\-./]*$/.test(parts[1])) return false } return true } function evaluate(names: string[]): { ok: boolean; errors: string[] } { const errors: string[] = [] for (const n of names) if (!validName(n)) errors.push(n) return { ok: errors.length === 0, errors } } 审计与发布治理审计不合规包名并阻断;产线仅接受规范化的作用域与名称。名称策略变更需审批与回归校验。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.652463s