Есть ли способ проверить, введен ли пользователь только 4 числа, а не 4 буквы с использованием PHP? Если да, то как?PHP Validation Question
ответ
if (strlen($s) == 4 && ctype_digit($s)) {
// ...
}
В качестве альтернативы вы можете также сделать:
if(preg_match('/^\d{4}$/',$input)) {
// valid input
} else {
// invalid input.
}
ctype_digit не будет работать пользовательский ввод, который был тип с приведением к целочисленным/форму поплавка. Регулярное выражение просто медленно, поэтому используйте его только при необходимости. Таким образом, с учетом этого я хотел бы сделать что-то вроде
$s = (string) $_POST['value'];
if(strlen($s) === 4 AND ctype_digit($s))
{
// Now that it's verified as a good value
// convert to int for the rest of the script
$value = (int) $s;
}
Это также защитит вас от пользователей проходящих массивов в строке проверку.
Hex обозначение и научная нотация 'are_numeric' также! Кроме того, что это за 'ctype' не работает и пользовательский ввод? Это чепуха. – deceze
Конечно, ctype_digit будет работать. Из документации: «Проверяет, являются ли все символы в предоставленной строке, текстом, числовыми». Это именно то, что хочет сделать здесь. – ChrisM
Извините, мой плохой. На самом деле это наоборот. 'ctype_digit' не работает с целыми числами, которые вызывают проблемы, если вы правильно приписываете свои значения. – Xeoncross
Filters может быть допустимой альтернативой, хотя и несколько подробным. Они позволяют вам правильно выражать свои правила валидации, такие как правила:
$isValid = filter_input(
INPUT_POST,
'varname',
FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1000, 'max_range' => 9999))
);
- 1. jQuery validation plugin question
- 2. JQuery ajax live validation/timeout question
- 3. Ruby on Rails Validation Question Внутренний контроллер
- 4. php simplexml xpath question
- 5. PHP AJAX noob question
- 6. PHP XML Parsing Question
- 7. PHP preg_match question
- 8. php basic array question
- 9. mysql PHP query question
- 10. PHP loggin system question
- 11. php str_replace question
- 12. PHP while Loop Question
- 13. php general question
- 14. PHP Parse Question
- 15. PHP XMLREADER - QUESTION
- 16. PHP Style Question
- 17. php source related question
- 18. PHP convert link question
- 19. PHP form question
- 20. PHP OOP question
- 21. Php Pager question
- 22. php editor source question
- 23. PHP curl question
- 24. PHP Loop Question
- 25. jquery ajax - php question
- 26. PHP Regex Question
- 27. Doctrine PHP Question
- 28. PHP date format question
- 29. PHP login password question
- 30. php search question
+1 для сильно недоиспользуемых функций 'ctype'! :) – deceze