Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有javascript或jquery函数确定字符串是数字还是日期?_Javascript_Jquery - Fatal编程技术网

是否有javascript或jquery函数确定字符串是数字还是日期?

是否有javascript或jquery函数确定字符串是数字还是日期?,javascript,jquery,Javascript,Jquery,我想知道是否有一个javascript函数可以确定输入字符串是数字还是日期,或者两者都不是 以下是我的函数和: 是否有一个预构建的函数可以做到这一点(或者可能是更好的函数,因为上述函数显然有局限性)?简短回答:不,不是真的 这是因为日期可以以多种格式显示。您可以有字符串日期、日期日期或数字日期。Unix时间戳本质上只是一个1到10位的整数。您需要上下文来确定该整数表示什么 然而,在代码中需要这样的函数这一事实表明存在更大的问题。理想情况下,您应该知道函数输出的数据类型和格式。如果您使用的是API

我想知道是否有一个javascript函数可以确定输入字符串是数字还是日期,或者两者都不是

以下是我的函数和:


是否有一个预构建的函数可以做到这一点(或者可能是更好的函数,因为上述函数显然有局限性)?

简短回答:不,不是真的

这是因为日期可以以多种格式显示。您可以有字符串日期、日期日期或数字日期。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;
}