2015-11-19 1 views
-1

Я могу проверить это правило, используя простой Javascript. Но я бы предпочел сделать это с помощью RegEx. Я попробовал это (и другие варианты), но не слишком уверен в себе:Регулярное выражение в Javascript для начала с верхним регистром, только с алфавитами, maxlength 20, minlength 2

regEx = /^[A-Z]([a-z]|[A-Z]){1,19}$/; 

Испытательные чехлы прошли. Правильно ли это или есть лучший подход?

+2

Если в коде нет ничего плохого или у вас нет про вам может понадобиться http://codereview.stackexchange.com/. – Andy

+1

выглядит хорошо, вы можете сохранить 3 символа: regEx =/^ [A-Z] ([a-zA-Z]) {1,19} $ /; – Stasik

+0

Используйте 'regEx =/^ [A-Z] [a-zA-Z] {1,19} $ /;'. ИМХО, если вы не уверены в регулярном выражении, не используйте его. Если что-то может быть достигнуто без регулярного выражения, не используйте регулярное выражение. –

ответ

1

Вам может понадобиться инструмент для сборки ваших Regex как https://regex101.com

Что вы хотите, чтобы точно соответствовать?

Ваше регулярное выражение соответствует следующей строке: - Начнет с символом между [AZ] => только алфавитным верхний регистром - 1 до 19 алфавитного символа верхнего или нижнего регистра

Так что ваша длина строки между 2 и 20 символов.

Вы могли бы просто ваш РегВыр по

regEx = /^[A-Z][a-zA-Z]{1,19}$/; 

Если вы не хотите, не мин длину, означает, что пустой матч строка, которую вы могли бы использовать:

regEx = /^([A-Z][a-zA-Z]{0,19})?$/ 

Если вы хотите мин клыков быть 1, средство что вы соответствуете одному верхнему символу, который вы могли бы использовать:

regEx = /^[A-Z][a-zA-Z]{0,19}$/ 
+0

OP указано minlegth 2 в названии – Mariano

Смежные вопросы