Я пытался найти быстрый и простой способ проверить, является ли первая буква в строке числом. Многие функции и методы, которые я видел на SO, кажутся сложнее. Мне интересно, что-то вроде этой работы:
is_numeric($string[0]);
Более простой способ:
is_numeric(substr($string, 0, 1))
Он решает проблему возможной пустой строки (которая не имеет первого символа), используя substr()
. substr()
возвращает false
в случае пустой строки, а false
не распознается как число is_numeric()
.
Я не знаю, почему этот ответ удален, но правильный ответ
preg_match('/^\d/', $string);
Зачем? Потому что он обеспечивает стандартный способ запроса строк. Обычно вы должны отвечать на многие подобные вопросы в своем приложении:
и т. д. и т. д. Без регулярных выражений вам придется изобретать различную комбинацию строковых функций для каждого случая, в то время как REs предоставляют унифицированный и стандартный интерфейс, который вы просто повторно используете снова и снова. Это похоже на алгебру по сравнению с арифметикой.
Нет, это не сработает. Вы можете получить уведомление « Уведомление: Неинициализированное строковое смещение: 0 ». Чтобы заставить его работать, добавьте strlen()
:
if ( strlen($string) > 0 && is_numeric($string[0]) ) { }
Да, это чистый способ сделать это, но вместо этого используйте ctype_digit, поскольку он позволяет только номера от 0 до 9 и ничего больше.
Он не будет работать в пустых строках, поэтому вы должны проверить смещение, прежде чем обращаться к нему:
$result = isset($string[0]) ? is_numeric($string[0]) : false;