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

如何验证姓名中每个单词的首字母均为大写?

问题根因
  • 你的nameCheck函数没有显式声明返回值,执行完map逻辑后没有输出结果,所以调用后拿到的永远是undefined。
  • 校验逻辑选型错误:map方法的作用是遍历数组生成新数组,无法直接得到「所有姓名组成部分均符合规则」的布尔结果,适合该场景的是数组的every方法,只有所有元素都满足判断条件时才会返回true,否则返回false,刚好匹配你的校验需求。
  • 缺少边界处理:没有适配空输入、输入内容含连续空格的场景,这类异常输入会直接导致代码报错。
修复后的完整代码
nameCheck(value){
    // 前置拦截非法输入
    if(!value || typeof value !== 'string') return false
    // 拆分姓名并过滤掉空内容(适配连续空格场景)
    const nameParts = value.split(" ").filter(part => part.trim().length > 0)
    // 校验所有姓名组成部分首字母大写
    return nameParts.every(part => {
        return part[0] === part[0].toUpperCase()
    })
}
调用方式

原有调用逻辑不需要修改,直接运行即可得到正确的布尔校验结果:

const isValidName = validate.nameCheck(form.creator)
console.log(isValidName)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:24:02