Кажется, что спецификация HTML5 (и, следовательно, ECMA262) позволяет <input type="text" pattern="[0-9]/[0-9]" />
соответствовать строке '0/0', даже если косая черта не экранирована. Веб-приложения, такие как Drupal, хотели бы обеспечить проверку на стороне сервера для браузеров, которые не поддерживают HTML5, например:
<?php
preg_match('/^(' . $pattern . ')$/', $value);
?>
К сожалению, строка '[0-9] / [0-9]' не является допустимым регулярным выражением PRCE. Похоже, что большинство, если не все браузеры, поддерживающие HTML5, поддерживают и pattern="[0-9]/[0-9]"
, и pattern="[0-9]\/[0-9]"
, в связи с чем возникает вопрос - что мы можем использовать в качестве разделителя для запуска этого шаблона с регулярным выражением в стиле Perl?
Мы подали отчет об ошибке по спецификации W3C но браузеры здесь не правы? Нужно ли уточнять спецификацию HTML5? Есть ли обходной путь, который мы можем использовать в PHP?