MST
星途 面试题库

面试题:TypeScript联合类型在表单验证场景中的应用

假设你正在开发一个用户注册表单,其中用户名可以是字母和数字组合,密码必须是8位以上包含字母和数字的字符串。请使用TypeScript联合类型和类型守卫实现一个函数,用于验证表单输入的合法性,并返回相应的错误信息。例如输入用户名'user123',密码'abc123456',输出验证通过;若用户名'user@',密码'12345678',输出用户名不合法。
40.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function validateForm(username: string, password: string): string {
    const usernameRegex = /^[A-Za-z0-9]+$/;
    const passwordRegex = /^(?=.*[A-Za-z])(?=.*\d).{8,}$/;

    if (!usernameRegex.test(username)) {
        return '用户名不合法';
    }
    if (!passwordRegex.test(password)) {
        return '密码不合法,密码必须是8位以上包含字母和数字的字符串';
    }
    return '验证通过';
}