gpt4 book ai didi

javascript - “检查信件”验证无效

转载 作者:行者123 更新时间:2023-12-01 13:12:03 26 4
gpt4 key购买 nike

我正在运行一些函数来验证用户在表单中输入的文本是否至少包含一个数字和一个字母。它似乎没有用。由于这两个功能几乎相同,我将只发布其中一个:

function hasALetter(textField){
//returns true or false based on whether or not the text field has at least one letter inside it
console.log("Checking for letters...");

var hasLetter = false;

for(var i=0, checkLength=textField.length; i<checkLength; i++){
var letter = textField.substr(i,1);
console.log("letter = " + letter);
if(isNan(letter) == false){
hasLetter = false;
}
}
if(hasLetter == true){
return true;
}
}

日志 ("letter = "+ letter) 从未出现在我的控制台中。我可能遗漏了一些愚蠢的东西,但它似乎并没有完成该功能。

作为引用,下面是我调用函数的方式:

if(pwd.value.length > 9){

var pwdLetter = hasALetter(pwd);
var pwdNumber = hasADigit(pwd);

if(pwdLetter==true){
if(pwdNumber==true){

是的,我知道它很乱,但我仍在学习。我确信有更高级/更简洁的方法来执行此验证,但为了我的学校教育,我现在这样做。

最佳答案

检查字符串是否包含字母的最简单方法是正则表达式:

function hasLetter(str){
// check for characters between a and z
// i flag makes it case insensitive
return /[a-z]/i.test(str);
}

如果你想遍历字符串并且还想使用 isNaN 函数,可以这样做:

function hasLetter(str){

// loop through every character
for(var i=0; i<str.length; i++){

// check if the i-th character is not a number
if(isNaN(str[i])){

// if so, return true
return true;
}
}

// if the loop has finished and no letters have been found, return false
return false;
}

但我不推荐这种方法,因为 isNaN 检查第一个参数是否为数字。首先,并非所有不是数字的字符都是字母。其次,你传入的参数是一个字符串(str[i]返回一个string类型的字符,即使是数字)

关于javascript - “检查信件”验证无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com