Для набора функций PHP preg
регулярные выражения должны быть указаны с разделителем, например /
;например, /[a-z]/
будет соответствовать любому символу от a
до z
.Когда вы даете ему строку "^\\d+(.(\\d{2}))?$"
, она хочет обработать регулярное выражение как \\d+(.(\\d{2}))?$
, ограниченное ^
с, но не может найти второе ^
.Таким образом, исправить это так же просто, как "/^\\d+(.(\\d{2}))?$/"
Другая вещь, которую вам нужно исправить, это .
;это метасимвол, который будет соответствовать любому не-символу новой строки;на буквальный период, вы хотите \.
.Это дает вам регулярное выражение "/^\d+(\.(\d{2}))?$/"
.Также обратите внимание, что если вам не нужна группа захвата, вы можете использовать "/^\d+(?:\.(\d{2}))?$/"
, в котором цифры после десятичной точки ставятся в $1
вместо $2
.