Шаблон регулярных выражений для HH: MM должен допускать только 2 цифры [дублировать]

Добавление случая, когда имя класса для объекта, используемого в структуре сущности, такое же, как имя класса для файла с кодировкой веб-формы.

Предположим, у вас есть веб-форма Contact.aspx, чей класс codebehind Свяжитесь с вами, и у вас есть имя объекта Contact.

Затем следующий код вызовет исключение NullReferenceException при вызове context.SaveChanges ()

Contact contact = new Contact { Name = "Abhinav"};
var context = new DataContext();
context.Contacts.Add(contact);
context.SaveChanges(); // NullReferenceException at this line

Ради полноты класса DataContext

public class DataContext : DbContext 
{
    public DbSet Contacts {get; set;}
}

и класс сущности контакта. Иногда классы сущностей являются частичными классами, так что вы можете распространять их и в других файлах.

public partial class Contact 
{
    public string Name {get; set;}
}

Ошибка возникает, когда оба класса entity и codebehind находятся в одном и том же пространстве имен. Чтобы исправить это, переименуйте класс сущности или класс codebehind для Contact.aspx.

Причина. Я все еще не уверен в причине. Но всякий раз, когда какой-либо из классов сущностей расширяет System.Web.UI.Page, возникает эта ошибка.

Для обсуждения рассмотрим NullReferenceException в DbContext.saveChanges ()

107
задан Click Upvote 24 September 2011 в 04:14
поделиться

18 ответов

У вашего исходного регулярного выражения есть недостатки: он не будет соответствовать 04:00, например.

Это может работать лучше:

^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
262
ответ дан Peter O. 23 August 2018 в 23:00
поделиться

Ниже регулярное выражение поможет проверить формат hh: mm

^([0-1][0-9]|2[0-3]):[0-5][0-9]$
0
ответ дан Ankitkumar Bhatt 23 August 2018 в 23:00
поделиться

Вы можете использовать следующее регулярное выражение:

^[0-1][0-9]:[0-5][0-9]$|^[2][0-3]:[0-5][0-9]$|^[2][3]:[0][0]$
0
ответ дан Basavaraj 23 August 2018 в 23:00
поделиться

Declare

private static final String TIME24HOURS_PATTERN = "([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]";

public boolean validate(final String time) {
    pattern = Pattern.compile(TIME24HOURS_PATTERN);
    matcher = pattern.matcher(time);
    return matcher.matches();
}

Этот метод возвращает «true», когда String соответствует регулярному выражению.

0
ответ дан bc004346 23 August 2018 в 23:00
поделиться

Поскольку вы запросили левый самый бит опционально, я делал левый самый и самый правый бит необязательно, проверьте его

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

Он совпадает с

0:0 
00:00
00:0 
0:00
23:59
01:00
00:59

Прямая ссылка доступна здесь

0
ответ дан gdmanandamohon 23 August 2018 в 23:00
поделиться

Вы можете использовать это регулярное выражение:

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

Если вы хотите исключить 00:00, вы можете использовать это выражение

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

. Второе выражение - лучший вариант, потому что действительное время с 00:01 до 00:59 или с 0:01 до 23:59. Вы можете использовать любой из них по своему требованию. Ссылка Regex101

2
ответ дан iblamefish 23 August 2018 в 23:00
поделиться

Попробуйте следующее

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

Примечание. Я принимал механизм регулярных выражений javascript. Если это не так, пожалуйста, дайте мне знать.

-3
ответ дан JaredPar 23 August 2018 в 23:00
поделиться

Небольшая модификация вклада Manish M Demblani's выше обрабатывает 4 утра (я избавился от секции секунд, поскольку мне это не нужно в моем приложении)

^(([0-1]{0,1}[0-9]( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]))$

ручки: 4 часа 4 часа ночи 4:00 4:00 утра 4:00 вечера 4.30 утра и т. д.

0
ответ дан JonathanDavidArndt 23 August 2018 в 23:00
поделиться

Вы можете попробовать следующее

^\d{1,2}([:.]?\d{1,2})?([ ]?[a|p]m)?$

. Он может обнаруживать следующие шаблоны:

2300 
23:00 
4 am 
4am 
4pm 
4 pm
04:30pm 
04:30 pm 
4:30pm 
4:30 pm
04.30pm
04.30 pm
4.30pm
4.30 pm
23:59 
0000 
00:00
-1
ответ дан Manish M Demblani 23 August 2018 в 23:00
поделиться

Вы можете использовать этот 24H, секунды являются необязательными

^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])(:[0-5][0-9])?$
4
ответ дан Mike Szyndel 23 August 2018 в 23:00
поделиться

Регулярные выражения для времени

  • HH: MM 12-часовой формат, необязательный Ведущий 0
    /^(0?[1-9]|1[0-2]):[0-5][0-9]$/
    
  • ЧЧ: MM 12-часовой формат, необязательный ведущий 0, Обязательные меридиемы (AM / PM)
    /((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))/
    
  • HH: MM 24-часовой с ведущим 0
    /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
    
  • HH: MM 24-часовой формат, необязательный ведущий 0
    /^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
    
  • ЧЧ: ММ: SS 24-часовой формат с ведущим 0
     /(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)/ 
    

Ссылка и демонстрация

0
ответ дан Niket Pathak 23 August 2018 в 23:00
поделиться

Матчи:

2:9
2:09
2:59
02:9
02:09
02:59
23:59

Использовать его:

^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9])$
0
ответ дан Pedram Ahmadpour 23 August 2018 в 23:00
поделиться

проверить этот детектор метки времени masterfull regex, который я построил, чтобы найти временную метку, заданную пользователем, примеры того, что она будет включать, но, безусловно, НЕ ограничивается:

8:30-9:40
09:40-09 : 50
09 : 40-09 : 50
09:40 - 09 : 50
08:00to05:00
08 : 00to05 : 00
08:00 to 05:00
8am-09pm
08h00 till 17h00
8pm-5am
08h00,21h00
06pm untill 9am

Он также будет записывать еще много, если в это время есть цифры

-1
ответ дан pythonian29033 23 August 2018 в 23:00
поделиться

Ничто из этого не помогло мне. В конце я использовал:

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

Логика:

Первое число (часы): либо число от 0 до 19 -> [0-1]?[0-9] (разрешение одной цифры число) или число от 20 до 23 -> 2[0-3]

, второе число (минуты) всегда является числом от 00 до 59 -> [0-5][0-9] (не допуская ни одной цифры)

38
ответ дан Roopendra 23 August 2018 в 23:00
поделиться

Вы можете использовать следующее регулярное выражение:

^[0-2]?[0-3]:[0-5][0-9]$

Только сделанная модификация - крайняя левая цифра является необязательной. Остальное регулярное выражение такое же.

-2
ответ дан Shekhar 23 August 2018 в 23:00
поделиться

Лучше всего было бы для ЧЧ: ММ без риска.

^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
4
ответ дан Soner Gönül 23 August 2018 в 23:00
поделиться

Mine is:

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

Это намного короче

. Попробовал его с несколькими примерами

Match:

  • 00:00
  • 7:43
  • 07:43
  • 19:00
  • 18 : 23

И не соответствует любому недопустимому экземпляру, например 25:76 и т. Д. ...

-1
ответ дан user 23 August 2018 в 23:00
поделиться

Удивительно, но я обнаружил, что все они не совсем покрывают его, поскольку они не работают для более короткого формата в полночь 0: 0, а некоторые не работают в 00:00, я использовал и протестировал следующие :

^([0-9]|0[0-9]|1?[0-9]|2[0-3]):[0-5]?[0-9]$
2
ответ дан user3229770 23 August 2018 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: