@DmitryLife

Как узнать есть ли буквы в строке?

Добрый день.

Пользователь передает строку. (в которой указывает кол-во с плавающей точкой чего-либо) Но он может указать буквы в сообщении, что нарушает программу.
Мне надо проверить, есть ли симолы в строке за исключением цифр, "," или "."

Как можно это сделать. Я точно видел где-то решение, где предлагается через тире проверить все буквы. Но не могу найти.
  • Вопрос задан
  • 436 просмотров
Решения вопроса 1
@DanKud
if (preg_match('/[a-zа-яё]/iu', $входящее_сообщение)) { /* если буква в слове есть, то будет true, если нет false */
    .....
}

а вообще точнее даже раз вам нужно обрубать все символы, кроме цифр, точек и запятых, то надо сделать так:
if (preg_match('/[^\d\.,]/', $входящее_сообщение)) { /* если есть лишний символ, то true, иначе false */
    .....
}

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
Если нет нужды писать эксепшен для не float в запросе, тогда преобразуйте так:
$var = (float)strtr($input, ',', '.');
Если нужно, то конвертните обратно в string и сравните.
Имхо, это нагляднее и очевиднее, чем регулярка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы