2014-11-16 18 views
0

Я использую HTML5 в валидации сборки, но для Time, я пою следующий код Код довольно прост, так как он просто проверяет формат времени, я не уверен, что я я здесь делаю неправильноhtml5 вопрос валидации времени с использованием шаблона

<input name="taskStartTime" type="text" value="05:15 PM" placeholder="Enter a valid start time." size="10" pattern="/^\d{1,2}:\d{2}([ap]m)?$/" title="Enter Valid Time"> 

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

+1

Ваше регулярное выражение не допускает пробела перед строкой «am/pm». Также в атрибутах 'pattern' подразумеваются'^'и' $ '. –

+0

.. и некоторые верхние и нижние требуется согласование случая для am/pm. В более общем случае, когда regex не работает, попробуйте разбить его на более мелкие/более простые части и протестировать их самостоятельно. – Alohci

ответ

3

Снимите вперед слэши: они являются частью литерального синтаксиса регулярного выражения JavaScript, а не частью синтаксиса общего регулярного выражения. Вам действительно не нужны ^ и $ либо потому, что для шаблона входного элемента они подразумеваются.

Значение, которое вы устанавливаете в вашем примере, 05:15 PM также не соответствует вашему регулярному выражению, потому что в нем есть пробел и потому, что «PM» находится в столицах. Чтобы учесть, что:

pattern="\d{1,2}:\d{2}(?[apAP][mM])?" 

Обратите внимание, что для html5 ввода pattern атрибутов вы не можете установить i регистрозависимости флаг, JavaScript (и некоторые другие регулярные выражения реализации) позволяют. В соответствии со спецификацией он действительно использует синтаксис JS для самого шаблона, но «компилируется„с глобальным, IgnoreCase и многопоточных флаги инвалидов“.

+0

и как мы можем применять флагов регулярного выражения, например '/ [ap] [m]/i'? –

+1

@vp_arth - Вы не можете (насколько я знаю). Я уточню свой ответ, чтобы сказать так. – nnnnnn

0

попробовать этот

<input name="taskStartTime" type="text" value="05:15 PM" placeholder="Enter a valid start time." size="10" pattern="^\d{1,2}:\d{2}\s([AP]M)?$" title="Enter Valid Time">

Смежные вопросы