$_POST['name'];
if(preg_match("[0-9]", $_POST['name']))
{
echo "все ровнячком";
}
else echo "все хреново";
?>
Спустя 4 минуты, 59 секунд (30.06.2010 - 15:23) DedMorozzz написал(а):
Читай внимательно про синтаксис Регулярок. Тут он не соблюден. В данном случае необходимо так:
И чему ТУТ равно ПОСТ['name']?
preg_match("#[0-9]#", $_POST['name'])- причём только 1 цифра будет.
И чему ТУТ равно ПОСТ['name']?
Спустя 1 минута, 23 секунды (30.06.2010 - 15:25) linker написал(а):
А что хотите вообще получить?
preg_match('/^\d+$/') - только цифры
preg_match('/[0-9]/'), равносильно preg_match('/\d/') - тру если есть хотя бы одна цифра
preg_match('/^\d+$/') - только цифры
preg_match('/[0-9]/'), равносильно preg_match('/\d/') - тру если есть хотя бы одна цифра
Спустя 1 минута, 23 секунды (30.06.2010 - 15:26) waldicom написал(а):
Для простых случае лучше использовать функции типа ctype_*
Спустя 45 секунд (30.06.2010 - 15:27) *kush* написал(а):
ура !!! ура!!! получилось это лучший подарок!!!! в книге Кузнецова про # ничего не сказано((((
DedMorozzz СПАСИБО
и всем кто помогал
DedMorozzz СПАСИБО
и всем кто помогал
Спустя 39 секунд (30.06.2010 - 15:27) DedMorozzz написал(а):
Кстати по поводу "\d" не советую писать. В длинных строковых выражениях, где много чего экранирется, очень легко потерять \d иль \s, \S и так далее. Задавай в явном виде. И так их проще подстраивать.
Спустя 45 секунд (30.06.2010 - 15:28) linker написал(а):
waldicom, тогда уж банальное
is_numeric($_POST['name'])
Спустя 1 минута, 50 секунд (30.06.2010 - 15:30) linker написал(а):
Цитата (DedMorozzz @ 30.06.2010 - 12:27) |
Кстати по поводу "\d" не советую писать. В длинных строковых выражениях, где много чего экранирется, очень легко потерять \d иль \s, \S и так далее. Задавай в явном виде. И так их проще подстраивать. |
если нужно /[3-9]/ - тогда да, чем длиннее регулярка, тем сложенее в ней разбираться. Тут палка о двух концах.
Спустя 37 секунд (30.06.2010 - 15:31) waldicom написал(а):
Цитата (linker @ 30.06.2010 - 14:28) |
waldicom, тогда уж банальное is_numeric($_POST['name']) |
Цитата |
ctype_digit hаs far better benchmarks thаn is_numeric. |
Пусть для этого случая это не важно, но почему бы и нет?
Спустя 1 минута, 49 секунд (30.06.2010 - 15:32) DedMorozzz написал(а):
Ну я разбираюсь порой в регулярках в несколько строк. И очень просто читать то, что заданно в явном виде. А различать \S u \s - далеко не так просто, вроде выглядит похоже, а означает совершенно противоположное.
Спустя 7 минут, 11 секунд (30.06.2010 - 15:40) linker написал(а):
Цитата |
ctype_digit hаs far better benchmarks thаn is_numeric. |
Может когда-то так и было, сейчас все иначе (PHP 5.3)
Спустя 8 минут, 35 секунд (30.06.2010 - 15:48) waldicom написал(а):
Цитата (linker @ 30.06.2010 - 14:40) | ||
Может когда-то так и было, сейчас все иначе (PHP 5.3) |
У Вас есть результаты сравнений, чтобы не выглядеть балаболом?
Спустя 10 минут, 53 секунды (30.06.2010 - 15:59) linker написал(а):
Элементарно
P.S. 5.2.10 is_numeric тоже быстрее.
P.S. Прошу прощения, не учел факт когда is_numeric() == false, тогда ctype бысрее
$s = microtime(1);Я не зря сделал приписку PHP 5.3, возможно в ранних версиях is_numeric работал медленнее.
ctype_digit('883652833333333333333333333335234654236236528333333333333333333333352346365283333333333');
$e = microtime(1);
$r1 = $e - $s;
$s = microtime(1);
is_numeric('8836528333333333333333333333352346542362365283333333333333333333333523463652833333333333');
$e = microtime(1);
$r2 = $e - $s;
if ($r2 < $r1) { echo 'is_numeric better'; } else { echo 'ctype better'; }
P.S. 5.2.10 is_numeric тоже быстрее.
_____________
пожизненный бан