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