是否有javascript或jquery函数确定字符串是数字还是日期?
我想知道是否有一个javascript函数可以确定输入字符串是数字还是日期,或者两者都不是 以下是我的函数和:是否有javascript或jquery函数确定字符串是数字还是日期?,javascript,jquery,Javascript,Jquery,我想知道是否有一个javascript函数可以确定输入字符串是数字还是日期,或者两者都不是 以下是我的函数和: 是否有一个预构建的函数可以做到这一点(或者可能是更好的函数,因为上述函数显然有局限性)?简短回答:不,不是真的 这是因为日期可以以多种格式显示。您可以有字符串日期、日期日期或数字日期。Unix时间戳本质上只是一个1到10位的整数。您需要上下文来确定该整数表示什么 然而,在代码中需要这样的函数这一事实表明存在更大的问题。理想情况下,您应该知道函数输出的数据类型和格式。如果您使用的是API
是否有一个预构建的函数可以做到这一点(或者可能是更好的函数,因为上述函数显然有局限性)?简短回答:不,不是真的 这是因为日期可以以多种格式显示。您可以有字符串日期、日期日期或数字日期。Unix时间戳本质上只是一个1到10位的整数。您需要上下文来确定该整数表示什么 然而,在代码中需要这样的函数这一事实表明存在更大的问题。理想情况下,您应该知道函数输出的数据类型和格式。如果您使用的是API,那么它应该有一个记录良好的接口,从而帮助您避免这个问题 但是如果你只需要90%的时间都能用的东西,你可以试试
function isDate (x) {
if (x instanceof Date) { return true; }
if (typeof x === String && !isNaN(Date.parse(x))) { return true; }
return false;
}
有这么多不同的日期格式,我不认为你会得到一个简单的正则表达式解决这个问题。我会改为看。你可以说
var-date=new-date(myString);如果(date==“Invalid date”){…}
表示数字,那么您已经得到了关于日期的答案,这取决于格式。是否有一个内置函数可以同时处理这两种情况?不,Javascript有一个Date.parse函数。如果该值有效,则以毫秒为单位返回日期,否则您可以使用isNaN(输入)确定输入是否为数字
function isDate (x) {
if (x instanceof Date) { return true; }
if (typeof x === String && !isNaN(Date.parse(x))) { return true; }
return false;
}