1. Проверяю поле заполняемые пользователем, чтобы были только цифры
if ( !preg_match("/^\d+$/",$var) ) {Внимание - не число!}
но если вдруг в номере есть &, то проверка проходится успешно.
То есть
44 - число, 44a - не число, 44& - число, 44&4 - число, 44&a - число, 44a& - не число.
Как так?
2. В поле заполненном пользователем удаляю все не буквы и не цифры
$input= preg_replace ("/[^a-zA-ZА-Яа-я0-9]/","",$input);
Если вдруг амперсанд, то число обрезается на нем.
Было 1234&45678, стало 1234,
Было q!@#$%^1&2*()p, стало q1
Такое чувство, будто дойдя до амперсанда preg просто завершает работу.
Как это решается?
1. Narsus - 06 Декабря, 2017 - 16:44:19 - перейти к сообщению
2. Строитель - 06 Декабря, 2017 - 17:13:54 - перейти к сообщению
Narsus всё корректно отрабатывает
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- $var = '44&4';
- echo 'Внимание - не число!'; // Внимание - не число!
- }
- $input = '1234&45678';