Ты в значительной степени там.Просто добавьте числа 0-9 к своему регулярному выражению, например:
if(preg_match('/[^a-z0-9]/i', $search))
{
$error = "Error...";
}
Флаг /i
указывает выражению игнорировать регистр, поэтому A-Z
не требуется в списке букв.
В исходном коде вы искали все, что не было буквой или цифрой, и одновременно проверяли, не preg_match()
не соответствует что-либо - высоздал двойной негатив.Приведенный выше код выполняет if()
, если найдено, что не буква или цифра найдено.Полный комментарий @brain в комментариях.
Чтобы разрешить другие символы, просто добавьте их к символам внутри фигурных скобок:
if(preg_match('/[^a-z0-9 \.]/i', $search))
{
$error = "Error...";
}
В этом примере разрешены пробелы и .
(точки).