Как проверить что текст в php это действительно текст без цифр и всяких там символов?
К примеру пользователь должен ввести свое имя(то есть буквы и только), а не цифры и всякую дичь.
Ответы (3 шт):
Автор решения: Walfter
→ Ссылка
Как вариант через preg_match
$text = "Текст";
if (preg_match("/^.*([0-9])+.*$/", $text))
echo "В тексте есть цифры";
else
echo "В тексте нет цифр";
Автор решения: uberchel
→ Ссылка
$text = "Ваше имя фамилия";
if (preg_match('#^([a-zа-я\s]+)$#iuS', $text, $result)) {
echo "Вы ввели: {$result[1]}";
} else {
echo 'Ошибка, можно вводить только буквы';
}
Автор решения: Макс Максимус
→ Ссылка
Пропустить проверяемый текст через htmlspecialchars, а так же через регулярку на цифры. Потом сравнить текст и полученную строку:
function checkText($text)
{
return $text == htmlspecialchars(preg_replace('~\d+~', '', $text));
}
Примеры:
// в тексте присутствуют спецсимволы и цифры
$text = "Lorem ipsum 223 dolor sit amet899, conse35435ctetur. <p><b style='color: red;'>Duis aute</b></p><script>console.log('exercitation ullamco 435')</script>";
// в тексте присутствуют спецсимволы без цифр
$text2 = "Duis aute irure dolor in reprehenderit in voluptate velit cillum dolore eu. <div><i style='color: yellow;'>Cillum dolore</i></div><script>let a = 'labore et';</script>";
// только текст
$text3 = "Lorem ipsum dolor sit amet? Consectetur (daer) adipisicing. Elit - sed, do eiusmod; tempor incididunt ut labore et dolore magna aliqua.";
var_dump( checkText($text) ); // false
var_dump( checkText($text2) ); // false
var_dump( checkText($text3) ); // true