|
|
|
| Как с помощью регулярного выражения проверить чтобы в строке были только цифры от 0 до 9? Помогите плиз чайнику.
Есть идея что это должно быть так:
Я прав? | |
|
|
|
|
|
|
|
для: Максимыч
(04.07.2006 в 12:50)
| | просто используйте функцию if(is_numeric($icq)) | |
|
|
|
|
автор: cheops (из кафе) (04.07.2006 в 16:27) |
|
|
для: Максимыч
(04.07.2006 в 12:50)
| | Лучше так
<?php
if(!preg_match("|^[0-9]+$|",$icq)) exit("Это не число");
?>
|
| |
|
|
|
|
|
|
|
для: cheops (из кафе)
(04.07.2006 в 16:27)
| | А можно объяснить на пальцах как расшифровывается |^[0-9]+$| ? Что значит вертикальная черта? | |
|
|
|
|
|
|
|
для: Максимыч
(05.07.2006 в 17:05)
| | Здесь вертикальная черта - граница регулярного выражения, если вы замените её на любой другой символ, ничего страшного не произойдёт, так, |^[0-9]+$| можно заменить и на #^[0-9]+$# и на /^[0-9]+$/. ^ - сообщает что регулярное выражение должно соответствовать слову, начиная с самого начала, а $ - привязывает регулярное выражение к концу. Без них регулярное выражение может найти цифры, где-нибудь в середине и быть довольным: "цццад выа дв 45 влваовды ыд". [0-9] означает один символ от 0 до 9. [0-9]+ означает один или более символов от 0 до 9. | |
|
|
|
|
|
|
|
для: cheops
(06.07.2006 в 00:27)
| | Хорошо. А теперь усложним задание. В номере асе могжет содержаться от 6 до 9 цифр. И плюс - он не может начинаться на 0. Правильно я составил регулярное выражение л\для данного случая?
<?php
if(!preg_match("|^[1-9]{1}[0-9]{5,8}$|",$icq)) exit("Это не номер icq");
?>
|
| |
|
|
|
|
|
|
|
для: Максимыч
(06.07.2006 в 11:18)
| | Да, его можно даже упростить таким образом
<?php
if(!preg_match("|^[1-9][0-9]{5,8}$|",$icq)) exit("Это не номер icq");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(06.07.2006 в 11:59)
| | Отлично. Спасибо за помощь.
А вот если надо проверить правильность ввода номера телефона в формате: (495) 666-66-66. Как быть? Это верно?
<?php
if(!preg_match("|^\([0-9]{3}\)[\s][0-9]{3}[-][0-9]{2}[-][0-9]{2}$|",$phone)) exit("Это не номер телефона");
?>
|
| |
|
|
|
|
|
|
|
для: Максимыч
(06.07.2006 в 12:25)
| | Да, верно. Можно символы - не заключать в квадратные скобки, а писать прямо так. | |
|
|
|
|
|
|
|
для: cheops
(06.07.2006 в 11:59)
| | а как сделать, чтоб например пользователь ввёл 123-122-543 а рег. выражение ему не тыкало мол это не аська а просто вырезало дифисы и всё нормально
да и ваще ... есть у когонибуть универс. решение для проверки аськи ? | |
|
|
|
|
|
|
|
для: Oligarx
(08.07.2006 в 13:51)
| | Да вы просто вырезайте дефисы у номера перед проверкой
<?php
$icq = str_replace("-","",$icq);
?>
|
| |
|
|
|