如何区分时间字符串和非时间字符串

时间:2011-08-13 17:47:00

标签: javascript string numbers

我需要一个能够判断字符串是否为时间格式的函数。这些方面的东西:

var string1 = "Normal String",
    string2 = "12:00pm";


function timeOrString(str) {
   if (str == A TIME) {
      alert('this is a time');
   }
   else {
      alert('this is a normal string');
   }
}

timeOrString(string1);
timeOrString(string2);

这可能就像告诉字符串中是否有数字一样简单?

3 个答案:

答案 0 :(得分:3)

var string1 = "Normal String",
    string2 = "12:00 pm";


function timeOrString(str){
  if(new Date("1/1/1900 " + str) != "Invalid Date" && str){
    alert("this is a valid time string");
  }else{
    alert("this is not a valid time string");
  }
}

timeOrString(string1);
timeOrString(string2);

这是一种做法。它很乱,但大部分时间都可以工作。 :P

答案 1 :(得分:1)

有几种方法可以做到......有些人使用Regular Expresions进行其他价值检查......以下是一些例子:

http://javascript.internet.com/forms/val-time.html http://www.the-art-of-web.com/javascript/validate-date/ http://www.codeproject.com/KB/scripting/timevalidation.aspx

但是我的推荐,取决于你想要做什么,它不使用文本框来请求时间,而是使用jquery插件来选择日期和时间,并以这种方式控制输入格式:

http://trentrichardson.com/examples/timepicker/

答案 2 :(得分:0)

您可以使用instanceof和typeof运算符

var theDay = new Date(1995, 11, 17); // Dec. 17, 1995
 if (theDay instanceof Date)
 {
  print("theDay is a Date object");
   // whatever else...
 }

var myString = new String();
var myDate = new Date();


    myString instanceof String; // returns true
    myString instanceof Object; // returns true
    myString instanceof Date;   // returns false
    myDate instanceof Date;     // returns true
    myDate instanceof Object;   // returns true
    myDate instanceof String;   // returns false

instanceof

typeof