PHP Простое регулярное выражение PCRE, чтобы разрешить только 1 точку или нет? - PullRequest
0 голосов
/ 31 декабря 2010

Я пытаюсь создать регулярное выражение для проверки псевдонима:

И я допускаю буквы, цифры и 1 точку.

Я сделал следующее:

/^[a-z0-9\\.]+$/i

Тем не менее, допускается более 1 точки?

Ответы [ 3 ]

6 голосов
/ 31 декабря 2010

Это должно сделать это:

/^(?:\.[a-z0-9]+|[a-z0-9]+(?:\.[a-z0-9]*)?)$/i

Это позволяет строке:

  • начинается с одной точки, за которой следует хотя бы один буквенно-цифровой символ, или
  • начинаются с одного или нескольких буквенно-цифровых символов, за которыми может следовать одна точка и ноль или более буквенно-цифровых символов.
0 голосов
/ 31 декабря 2010

Я думаю, что не рекомендуется использовать точку в качестве первого или последнего символа, в этом случае:

/^[a-z0-9]+\.?[a-z0-9]+$/i
0 голосов
/ 31 декабря 2010

попробуйте это:

^(?:[a-z0-9]+\.?[a-z0-9]*|[a-z0-9]*\.?[a-z0-9]+)$

помещает точку в центр, а затем позволяет окружить ее с любой стороны.

...