PHP Проверьте, содержит ли он что-либо, кроме буквенно-цифрового или пробела

Вопрос:

У меня есть форма, которая отправляет строку. Просто:

<form action="test2.php" method="POST">
String: <input type="text" name="string" />
<br /><input type="submit" value="Send >" />
</form>

Вот test2.php:

<?php
$string = $_POST['string'];
preg_replace("/[^0-9a-zA-Z ]/", "", $string {
echo "You can't have any symbols in your username.";
} else {
echo "Nice string!";
}
?>

Это не работает. Я пытаюсь сделать это, если строка содержит что-либо BUT буквенно-цифровые символы или пробел (так что любые другие символы), он скажет, что вы не можете иметь символы. Но если он содержит только буквенно-цифровые или пробелы, он скажет Nice String.

Как это сделать?

Ответ №1

Ваш синтаксис полностью недействителен. Вы хотите что-то вроде этого:

<?php
$string = $_POST['string'];
if ( preg_match("/[^0-9a-zA-Z ]/", $string) ) {
echo "You can't have any symbols in your username.";
} else {
echo "Nice string!";
}
?>

Обратите внимание, что я использую preg_match для проверки соответствия регулярного выражения, а не preg_replace, который заменяет части строки.

Оцените статью
TechArks.Ru
Добавить комментарий