2009-05-19 18 views
14

क्या कोई मुझे समय निर्धारित करने के लिए नियमित अभिव्यक्ति बनाने में मदद कर सकता है?मान्य समय मान्य करने के लिए नियमित अभिव्यक्ति

मान्य मान 0:00 से 23:59 तक होंगे।

जब समय आ गया है यह भी एक चरित्र संख्या

का समर्थन करना चाहिए 10:00 से कम यानी:

  • 9:00
  • 09:00
: इन मान्य मान रहे हैं

धन्यवाद

+0

खेद है कि मैं गलत टाइप, मैं पहली बार नंबर 1 चरित्र का समर्थन करना चाहते हैं। यानी: 2:00 और 02:00 – juan

+0

'00: 00',' 01: 00', ... मान्य मान हैं? – Gumbo

+0

हां, लेकिन 0:00 और 1:00 – juan

उत्तर

38

इस नियमित अभिव्यक्ति को आजमाएं:

^(?:[01]?[0-9]|2[0-3]):[0-5][0-9]$ 

या अधिक विशिष्ट होना करने के लिए:

^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ 
7

मैं किसी कड़ी मेहनत लेकिन this है चोरी करने के लिए नहीं करना चाहते हैं आप के लिए क्या चाहिए, तो, जाहिरा तौर पर है।

using System.Text.RegularExpressions; 

public bool IsValidTime(string thetime) 
{ 
    Regex checktime = 
     new Regex(@"^(20|21|22|23|[01]d|d)(([:][0-5]d){1,2})$"); 

    return checktime.IsMatch(thetime); 
} 
1

रेगेक्स ^(2[0-3]|[01]d)([:][0-5]d)$ 00:00 से 23:59 तक मेल खाना चाहिए। सी # नहीं जानते और इसलिए आपको प्रासंगिक कोड नहीं दे सकता है।

/आरएस

7

मैं सिर्फ DateTime.TryParse का उपयोग करेंगे()।

DateTime time; 
string timeStr = "23:00" 

if(DateTime.TryParse(timeStr, out time)) 
{ 
    /* use time or timeStr for your bidding */ 
} 
+0

में उपयोग के लिए है यह क्लाइंट-साइड सत्यापन के लिए है – juan

2

आप अनुमति देना चाहते हैं सैन्य और मानकबजे से अपराह्न के उपयोग के साथ (वैकल्पिक और असंवेदनशील), तो आप इस एक कोशिश देने के लिए कर सकते हैं।

^(?:(?:0?[1-9]|1[0-2]):[0-5][0-9]\s?(?:[AP][Mm]?|[ap][m]?)?|(?:00?|1[3-9]|2[0-3]):[0-5][0-9])$ 
0

बेहतर !!!

public bool esvalida_la_hora(string thetime) 
    { 
     Regex checktime = new Regex("^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"); 
     if (!checktime.IsMatch(thetime)) 
      return false; 

     if (thetime.Trim().Length < 5) 
      thetime = thetime = "0" + thetime; 

     string hh = thetime.Substring(0, 2); 
     string mm = thetime.Substring(3, 2); 

     int hh_i, mm_i; 
     if ((int.TryParse(hh, out hh_i)) && (int.TryParse(mm, out mm_i))) 
     { 
      if ((hh_i >= 0 && hh_i <= 23) && (mm_i >= 0 && mm_i <= 59)) 
      { 
       return true; 
      } 
     } 
     return false; 
    } 
+0

यह बेहतर क्यों है? ऐसा लगता है कि यह उत्तर प्रश्न के मानदंडों को पूरा नहीं करता है? – roydukkey

+0

बस इसे आजमाएं !!!! –

-1
public bool IsTimeString(string ts) 
    { 
     if (ts.Length == 5 && ts.Contains(':')) 
     { 
      int h; 
      int m; 

      return int.TryParse(ts.Substring(0, 2), out h) && 
        int.TryParse(ts.Substring(3, 2), out m) && 
        h >= 0 && h < 24 && 
        m >= 0 && m < 60; 
     } 
     else 
      return false; 
    } 
+1

आपके उत्तर में अधिक जानकारी जोड़ें। –

0
[RegularExpression(@"^(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] (am|pm|AM|PM)$", 
        ErrorMessage = "Invalid Time.")] 

कोशिश इस

+3

ओपी को "इसे आजमाएं" क्यों चाहिए? एक ** अच्छा उत्तर ** हमेशा क्या किया गया था इसका स्पष्टीकरण होगा और यह ओपी के लिए क्यों नहीं बल्कि भविष्य के आगंतुकों के लिए ऐसा किया गया था, जो इस प्रश्न को पा सकते हैं और आपका उत्तर पढ़ रहे हैं। –

संबंधित मुद्दे