/^[a-z0-9.]+$)/
Должен сделать это. Только подумайте, что разрешены только маленькие буквы, точки и цифры . Выражение не будет совпадать, если включено любое пустое пространство. Btw. вам не нужно экранировать метасимволы в группе захвата.
^
и $
указывает, что вся строка должна содержать только эти символы в группе захвата (они отмечают начало и конец строки), а +
говорит, что хотя бы один из этих символов должен происходят. В зависимости от ваших потребностей вы можете изменить его, например, на {3,}
, что означает, что длина строки должна быть не менее 3 символов.
Пример:
$values=array("fooBar", "123.45", "foo bar", "foo.bar");
foreach($values as $value) {
if (!preg_match('/^[a-z0-9.]+$/', $value))
{
echo "Not valid: $value\n";
}
}
печать:
Not valid: fooBar
Not valid: foo bar