为什么JavaScript中indexof方法无法检测到字符串中的空格导致校验失效?
问题原因
- 方法名拼写错误:JavaScript 字符串的空格查找方法是驼峰命名的
indexOf(),你写的小写indexof()是不存在的,调用后会返回undefined,undefined > 0的判断结果为假,因此密码含空格的校验逻辑完全不触发。 - 空格判断边界缺陷:现有
indexOf(" ") > 0的写法无法识别首字符为空格的情况,空格出现在索引0位时会被漏判,需要调整为>= 0。 - 确认密码校验逻辑错误:你直接对比
f.CPassword和f.Password两个DOM元素对象,而非用户输入的实际值,该判断永远无法按预期生效,需要补充.value取输入值对比。
修正后代码
function Verif1() { if (f.Name.value.length < 3) { return false; } else if (f.LastName.value.length < 3) { return false; } else if (f.Mobile.value.length != 8 || f.Mobile.value < 1) { return false; } else if (f.Password.value.length < 6 || f.Password.value.indexOf(" ") >= 0) { return false; } else if (f.CPassword.value !== f.Password.value) { return false; } else { return true; } }
内容的提问来源于stack exchange,提问作者Lotenz
相关产品推荐
相关产品推荐

