регулярное выражение необязательное плавающее десятичное - PullRequest
0 голосов
/ 07 июня 2018

У меня есть MySQL double (10,2), к которому я применил следующее регулярное выражение: /^\d{0,10}\.\d{2}$/

Я не прохожу проверку для 1234, я предполагаю, что требуется десятичное число(Я понял, ? - это необязательный символ, который отсутствует).

Где я могу поместить символ ? в это регулярное выражение?

спасибо

1 Ответ

0 голосов
/ 07 июня 2018

Чтобы решить непосредственную проблему, вам нужна необязательная группа вокруг \.\d{2} шаблона - (\.\d{2})?:

/^\d{0,10}(\.\d{2})?$/

Она соответствует 0-10 цифрам от начала строкии затем либо требуется конец строки, либо . и 2 цифры.

На следующем шаге вы можете разрешить 1 или 2 цифры в дробной части, используя ограничивающий квантификатор {1,2} :

/^\d{0,10}(\.\d{1,2})?$/

И даже используйте группу без захвата , чтобы получить очень небольшое повышение эффективности:

/^\d{0,10}(?:\.\d{1,2})?$/
...