Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: шаблон цифр от 1 до 10
 
 автор: Кот Васька   (30.11.2005 в 19:43)   письмо автору
 
 

Подскажите как правельно составить шаблон для проверки введённых чисел, нужно чтобы предел был от трёх цифр до десяти, и должны содержаться именно только цифры

да ещё так чтобы ноль небыл первым в начале, причём в любом количестве, это можно сделать?

   
 
 автор: Artem S.   (30.11.2005 в 21:35)   письмо автору
 
   для: Кот Васька   (30.11.2005 в 19:43)
 


/^[1-9][0-9]{2,8}$/

   
 
 автор: Алекс   (05.12.2005 в 02:18)   письмо автору
 
   для: Кот Васька   (30.11.2005 в 19:43)
 

Я бы предложил такой вариант (не идеальный, но работоспособный)


<?
/*
Проверяем чтобы юзер ввел ($subj) только цифры от 3 до 10
*/

$subj "00098765";
if (
preg_match("|^\d{3,10}$|"$subj$matches)) 
{
  
$subj1 $matches[0] * 1
  (
$subj1 == 0) ? print "Ошибка при вводе данных" : print $subj1;
}
else
  print 
"Ошибка при вводе данных!";

/*
Если юзер ввел что-то начиная с 0, (например 00098765), то любое арифметическое действие (в данном случае умножение на 1) эти нули убирает.
*/
?>

   
 
 автор: isset   (05.12.2005 в 17:30)   письмо автору
 
   для: Алекс   (05.12.2005 в 02:18)
 

тогда уж:

<?php
/*
Проверяем чтобы юзер ввел ($subj) только цифры от 3 до 10
*/

$subj "000098765";
if (
preg_match("|^\d{3,10}$|"$subj$matches))
{
  print  ((int)
$matches[0] == 0) ? "Ошибка при вводе данных" : (int)$matches[0];
}
else
  print 
"Ошибка при вводе данных!";

/*
Если юзер ввел что-то начиная с 0, (например 00098765), то любое арифметическое действие (в данном случае умножение на 1) эти нули убирает.
*/ 
?>


+ мой вариант без регулярных выражений:



<?php
$num 
"0770098765";

if (
strpos($num,'.') || !is_numeric($num) || strlen($num) > 10 || strlen($num) < 3) {
    echo 
"Ошибка при вводе данных!";
} else {
    echo (int)
$num;
}
?>



Быстрее мой вариант:
Регулярные выражения: 0.0074868202209473
Строковые функции: 0.0024511814117432

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования