регулярное выражение: разрешить только алфавиты и запятую между - PullRequest
0 голосов
/ 10 ноября 2010

Я хочу, чтобы пользователь мог вводить свой собственный город / город и страну, поэтому я хочу, чтобы алфавиты и запятая были только между городом и страной, ниже приводится то, что я придумал, но это не работает со вторымвыражение

'/[a-zA-Z\s]\,[a-zA-Z\s]/'

первое несовершенно, так как оно допускает столько запятых, сколько вы хотите ввести,

'/^[a-zA-Z\s\,]+$/'

if(!preg_match('/^[a-zA-Z\s\,]+$/', $mem_town_city_country) || !preg_match('/[a-zA-Z\s]\,[a-zA-Z\s]/', $mem_town_city_country))
{
   $error = true;
   echo '<error elementid="mem_town_city_country" message="TOWN/CITY, COUNTRY - sorry, they appear to be incorrect."/>';
}

как разрешить только одну запятую?

также, не уверен, что это слишком много - могу ли я проверить ввод символов для города, например, как минимум 3, и как минимум 4 для страны?

спасибо.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Вы были близки.Попробуйте это:

/^[a-zA-Z\s]+\,[a-zA-Z\s]+$/

Для количества символов необходимо:

/^[a-zA-Z\s]{3,}\,[a-zA-Z\s]{4,}$/
0 голосов
/ 10 ноября 2010

Так близко!На самом деле, то, о чем вы просили, - это то самое исправление, которое нужно:

'/[a-zA-Z\s]{3,}\,[a-zA-Z\s]{4,}/'

Вы правильно определили класс персонажа, но не указали, как часто он должен повторяться 1005 *.

...