Как реализовать такую проверку

Mad777

Новичок
Как реализовать такую проверку

Мне надо проверять введённые данные. А имено надо что бы строка могла содержать буквы, цифры, _ и точку(.) Но знаки точка и _ нельзя чтобы были первым или последним символом. Я написал, но работает не совсем так как надо в чем ошибка?
PHP:
"/^\w+(^_)*(^\.)*/"
 

denver

?>Скриптер
как минимум
(^_) => [^_]
(^\.) => [^\.]
если ты ммеешь в виду исключение.

да и если учесть эти правки у тебя записано:
всё что начинается с набора из как минимум 1 буквы за которыми следует 0 или больше не-подчеркиваний за которым 0 или больше не-точек после чего может быть всё что угодно (т.к. нет символа конца - $)
 

denver

?>Скриптер
нужно "^ 1 символ не точка и не подчеркивание, всё что угодно, 1 символ не точка и не подчеркивание $"

впрочем это не то что нужно
 

Mad777

Новичок
_vampiro_
Знаток смотрю, что ты мне кинул?
Я говорю регулярное выражение на работает, как мне надо.

-~{}~ 20.06.06 10:47:

Так вот немного улучшений вариант:
"/^[^_^.]+[A-z0-9 \._]+[^_^.]+$/"
По-моему то, что надо.

-~{}~ 20.06.06 10:52:

Не есть минус я могу и так написать a__b, a мне бы только a_b
 

Mad777

Новичок
"/^[^_^.]+[A-z0-9]+[\._]{0,1}[^_^.]+$/"

-~{}~ 20.06.06 10:56:

Romantik
Зачем мне статья? Я прочитал уже много информации по регулярным и знаю их принципы составления, щас ищё и прошу совета, как сделать правильнее, грамотнее.
 

_vampiro_

Новичок
Mad777
~it's a shit~
потесть своей регуляркой. ^_^

ЗЫ
Агрессивный настрой позволен тут только Фанату.

ЗЫЫ
Фразы "не работает" - пустой звук без примера. И если тебя в это тыкают - значит гони пример слова, на котором не работает.
 

Wicked

Новичок
Splurov
ты тоже 8]

var_dump(preg_match("/^(?:[a-z0-9][_.]?)*[a-z0-9]$/i", "1.1")); // 1
var_dump(preg_match("/^(?:[a-z0-9][_.]?)*[a-z0-9]$/i", "1..1")); // 0
 

_vampiro_

Новичок
:))))) Кому мы это пишем? :) Тело уже выпало из темы.

'~^[a-zA-Zа-яА-Я0-9]+[a-zA-Zа-яА-Я0-9_.]+[a-zA-Zа-яА-Я0-9]$~'

воть... лень вновь ваять тест.
 

Splurov

Новичок
Wicked
И что же неверно в результате?

-~{}~ 20.06.06 19:32:

_vampiro_
Автор просил :):
"Не есть минус я могу и так написать a__b, a мне бы только a_b"
 

Wicked

Новичок
Splurov
тогда уж так: /^([a-z0-9][a-z0-9_.]*)?[a-z0-9]$/i

_vampiro_
да просто, писями меряемся уже :)

у тебя минимальная длина строки - 3 символа, к тому же не ясен смысл a-zA-Z, когда можно сделать модифайер i

-~{}~ 20.06.06 19:34:

Splurov
извиняюсь :) читал по диагонали )
 

_vampiro_

Новичок
Wicked
согласен :) хотя я не знаю что для пхп "удобнее" модификатор или длинный паттерн.
*прячет писю*
 
Сверху