Intereting Posts
Аутентификация пользователей в WordPress с помощью wp_set_auth_cookie Геометрический поиск Как добавить активные состояния и значки в wordpress wp_nav_menu () вычесть нерабочие часы и дни с двух заданных времен в php Как я могу подключиться к серверу через JavaScript, где размещена моя PHP-программа? Как извлечь значение из объекта json с помощью javascript Почтовая форма в цикле while с javascript submit PHP mail () – Как установить приоритет? Как зарегистрировать пользователя из приложения Symfony 2 с помощью внутренних обработчиков Получение имен параметров из запроса SOAP с расширением PHP SOAP? Проблемы с выполнением скриптов Perl из PHP Как получить идентификатор последнего загруженного видео в канале YouTube Потерянное соединение с сервером MySQL при «считывании исходного пакета связи», системная ошибка: 0 Рабочий пример реализации «Аутентификация на основе токенов» с использованием «JSON Web Token (т.е. JWT)» в PHP и MySQL? вычесть «1» из числа в строке SQL Query

PHP regex – действительный номер плавающей позиции

Я хочу, чтобы пользователь вводил только 0-9 и только один раз "."

patt = /[^0-9(.{1})]/ 1.2222 -> true 1.2.2 -> false (only once '.') 

помогите мне, спасибо!

 /^-?(?:\d+|\d*\.\d+)$/ 

Это соответствует нормальным поплавкам, например, 3.14 , сокращенным для десятичной части только, например .5 и целым числам, например 9 а также отрицательным числам.

это то, что вы ищете

 $re = "~ #delimiter ^ # start of input -? # minus, optional [0-9]+ # at least one digit ( # begin group \. # a dot [0-9]+ # at least one digit ) # end of group ? # group is optional $ # end of input ~xD"; 

это принимает только «123» или «123.456», а не «.123» или «14e + 15». Если вам нужны эти формы, попробуйте is_numeric

Регулярные выражения предназначены для сопоставления строк. Если вы не указали явно после проверки формата входной строки (но фактического значения), вы также можете использовать

 filter_var("1.33", FILTER_VALIDATE_FLOAT); 

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

Вы можете использовать is_numeric() с предостережением, чтобы он 1e4 бит больше, чем обычно требуется (например, 1e4 ).

Почему бы не использовать http://php.net/manual/en/function.is-float.php ? Но в любом случае RegEx будет ^[\d]+(|\.[\d]+)$ весело провести время!

Это регулярное выражение:

 \d*(?:\.\d+)? 

даст результаты:

 123 -> true 123.345 -> true 123. -> true .345 -> true 0.3345 -> true 

Тем не менее, вы должны проверить пустоту ввода перед его использованием, поскольку регулярное выражение также допускает ввод нулевой длины .

Почему бы просто не использовать is_numeric если вы не знакомы с регулярными выражениями.

Что касается вашего регулярного выражения:. соответствует всем символам, \. соответствует точке. {1} не требуется. И я не знаю, что вы пытаетесь сделать с [^ ... ] . Прочтите учебник регулярных выражений, если вы действительно хотите использовать регулярные выражения где-то в своем коде.