gpt4 book ai didi

javascript - 日期验证伪代码到 JavaScript

转载 作者:行者123 更新时间:2023-11-27 22:42:08 26 4
gpt4 key购买 nike

我在将此伪代码语句转换为 JavaScript 时遇到问题,我是 JavaScript 新手,我对标记字符串感到困惑,我想确保我走在正确的轨道上

// Date validation function  
Function Boolean isValidDateFormat(String str)
// Declare variables
Declare String mm, dd, yyyy // month, day, year
Declare Boolean result = True // valid date format
// Check that length of string is 10
If length(str) != 10 Then
result = False
End If
// Check that third and sixth characters are slashes
If substring(str,2,1) != "/" Or
substring(str,5,1) != "/" Then
result = False
End If
// Separate string into parts
// Check that all entries are numeric
mm = substring(str,0,2) // month
dd = substring(str,3,2) // day
yyyy = substring(str,6,4) // year
If Not isNumeric(mm) Or Not isNumeric(dd)
Or Not isNumeric(yyyy) Then
result = False
End If
// Check that month is between 1 and 12
// and day is between 1 and 31
If (mm < 1 Or mm > 12) Or (dd < 1 Or dd > 31) Then
result = False
End If
Return result
End Function

这是我的 JavaScript 翻译

function isValidDateFormat(String str){      
return false;
if (str.length <10)
return false;
dd= substr[0];
mm= substr[3];
yyyy= substr[6];
if substr [2]!= "/";
substr [5]!= "/";
return false;

if (mm < 1 || mm > 12)
return false;
else if (dd < 1 || dd> 31)
return false;

最佳答案

这是你的函数:

function isValidDateFormat(str){
var mm, dd, yyyy;
if(str.length != 10){
return false;
}
if(str.charAt(2) != "/" || str.charAt(5) != "/"){
return false;
}
mm = str.substring(0,2);
dd = str.substring(3,5);
yyyy = str.substring(6,10);
if(parseInt(mm) != parseInt(mm) ||
parseInt(dd) != parseInt(dd) ||
parseInt(yyyy) != parseInt(yyyy) ||
parseFloat(yyyy) % 1 != 0){
return false;
}
if(parseInt(mm) < 1 ||
parseInt(mm) > 12 ||
parseInt(dd) < 1 ||
parseInt(dd) > 31){
return false;
}
return true;
};

console.log("is foobarbaz valid? " + isValidDateFormat("foobarbaz"));
console.log("is 09-21-1989 valid? " + isValidDateFormat("09-21-1989"));
console.log("is 88/88/8888 valid? " + isValidDateFormat("88/88/8888"));
console.log("is 09/21/19.9 valid? " + isValidDateFormat("09/21/19.9"));
console.log("is 04/12/1967 valid? " + isValidDateFormat("04/12/1967"));

有多种方法可以检查字符串是否包含数字,这里我使用 a != a 来捕获 NaN。

注意:这将使用您的原始伪代码返回 true:

 console.log(isValidDateFormat("09/21/19.9"));

因此,您必须更改代码来检查字符串是否仅包含数字(因为毕竟 19.9 是一个数字...)。一种方法是检查余数:

parseFloat(yyyy) % 1 != 0

关于javascript - 日期验证伪代码到 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670643/

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