Intereting Posts
Как получить значение идентификатора данных и поместить его в twitter bootstrap modal? Неожиданная ошибка T_STRING в PHP Регулярное выражение для проверки URL-адреса веб-сайта XMLHttpRequest в службе обслуживания Получить текущее использование полосы пропускания в Linux с помощью PHP Установка Laravel 4.1 в Windows 7 // Сделать файл .phar глобально доступным для командной строки Windows Как конвертировать HTML-код или данные, содержащие (тег изображения и некоторый текст) в изображение для загрузки вход в систему как пользователь или администратор из двух разных таблиц Apache замерзает при попытке загрузить файл? Эхо-результаты сложного запроса INNER JOIN с несколькими таблицами Почему Phing запускает мой файл build.xml, а затем говорит, что его не существует? jQuery заполняет элементы в Select, используя jQuery ajax json, php Исключение кавычек в PHP php как разбить URL-адрес Cake не может подключиться к базе данных

Проверьте, имеет ли строка только целые числа, разделенные запятой в PHP

Я действительно пуст на стороне Regex, и поэтому не мог получить, как сделать Regex в PHP, который проверяет, имеет ли строка эту конкретную последовательность символов.

$str = '2323,321,329,34938,23123,54545,123123,312312'; 

Средство проверки, содержит ли строка только целые числа (не десятичные, никакие алфавиты или что-то еще), разделенные запятой (,).

Вы можете использовать это регулярное выражение:

 '/^\d+(?:,\d+)*$/' 

Код:

 $re = '/^\d+(?:,\d+)*$/'; $str = '2323,321,329,34938,23123,54545,123123,312312'; if ( preg_match($re, $str) ) echo "correct format"; else echo "incorrect format"; 

Просто для удовольствия без регулярного выражения:

 var_dump( !array_diff($a = explode(',', $str), array_map('intval', $a)) ); 

Если вам не нужен формат, вы можете просто проверить наличие символов:

 $regex = '/^[0-9,]+$/'; if (preg_match($regex, $str) === 1) { echo 'Matches!'; } 

Вы также можете сделать это, не используя регулярные выражения:

 $str = str_replace(',', '', $str); if (ctype_digit($str)) { echo 'Matches!'; } 

Если вы заботитесь о формате, то что-то вроде этого будет работать:

 $regex = '/^[0-9]+(?:,[0-9]+)*$/'; if (preg_match($regex, $str) === 1) { echo 'Matches!'; }