Подтвердить что ты не робот

Первая буква - это номер в строке

Я пытался найти быстрый и простой способ проверить, является ли первая буква в строке числом. Многие функции и методы, которые я видел на S.O, кажутся сложнее. Мне интересно, что-то вроде этой работы:

is_numeric($string[0]);
4b9b3361

Ответ 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

Он не будет работать в пустых строках, поэтому вы должны проверить смещение перед его доступом:

$result = isset($string[0]) ? is_numeric($string[0]) : false;