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

时间:2016-10-06 20:38:57

标签: javascript jquery

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

这是我的功能和codepen

function isNumeric(n) {
  // http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers
  return !isNaN(parseFloat(n)) && isFinite(n);
} 
function number_or_string(i) {
  // http://stackoverflow.com/questions/7657824/count-the-number-of-integers-in-a-string
  if (i.length == 10 && i.replace(/[^0-9]/g, "").length) {
    result = 'date'
  } else if (isNumeric(i)) {
    result = 'number'
  } else {
    result = 'string'
  }
  return result
}

是否有预先构建的功能可以执行此操作(或者可能是更好的功能,因为上述功能显然有局限性)?

1 个答案:

答案 0 :(得分:1)

简短回答:不,不是真的。

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