Форумы портала PHP.SU » PHP » Регулярные выражения » пропустить только цифры или пустую строку

Страниц (1): [1]
 

1. broshurkaplus - 27 Декабря, 2015 - 16:46:25 - перейти к сообщению
пример:
PHP:
скопировать код в буфер обмена
  1. $id=filter_input(INPUT_POST, 'rednum', FILTER_VALIDATE_REGEXP,
  2.                 array('options'=>array('regexp'=>'/^[0-9]+$/')));

подскажите перлсовметимое регулярное выражение, которое пропускало бы только цифры и пустую строку.
спасибо
2. Мелкий - 27 Декабря, 2015 - 17:19:47 - перейти к сообщению
/^[0-9]*$/
3. broshurkaplus - 27 Декабря, 2015 - 18:15:11 - перейти к сообщению
вроде ставил квант. * - и обратился потому что не дает то чего мне надо...

PHP:
скопировать код в буфер обмена
  1. //отправляем:
  2. //'55'
  3. //'55aa'
  4. //''
  5.  
  6. [PHP]$id=filter_input(INPUT_POST, 'rednum', FILTER_VALIDATE_REGEXP,
  7.                 array('options'=>array('regexp'=>'/^[0-9]*$/')));
  8. if(!$id){
  9.             var_dump($id);
  10.             var_dump(false);
  11.         }
  12.         else{
  13.             var_dump($id);
  14.             var_dump(true);
  15.         }
  16. //получаем:
  17. //string(2) "55" bool(true)
  18. //bool(false) bool(false)
  19. //string(0) "" bool(false)    -  мне нужно чтобы тут (если пост rednum - пустая строка давало true
[/PHP]

?
4. Мелкий - 27 Декабря, 2015 - 18:25:47 - перейти к сообщению
Ну так и при чём тут регулярка?
Пустая строка при приведению к булеву типу даёт false.
5. broshurkaplus - 27 Декабря, 2015 - 18:36:31 - перейти к сообщению
перечитал, спасибо
возможно ли полуить true когда приходит пустая строка?
6. Sail - 28 Декабря, 2015 - 14:17:54 - перейти к сообщению
broshurkaplus пишет:
перечитал, спасибо
возможно ли полуить true когда приходит пустая строка?

PHP:
скопировать код в буфер обмена
  1. if($id === FALSE) // ну и дальше...

(Добавление)
И ещё:
Цитата:
FALSE, если фильтрация завершилась неудачей, или NULL, если переменная variable_name не определена. Если установлен флаг FILTER_NULL_ON_FAILURE, функция возвращает FALSE, если переменная не определена и NULL, если фильтрация завершилась неудачей.

Вот в зависимости от этих значений и анализируйте результат.

 

Powered by ExBB FM 1.0 RC1