Шаблон, запрещающий пользователю вводить специальные символы в качестве первого символа

У меня есть требование к полю ввода, которое должно разрешать числа, алфавиты и специальные символы, такие как #, $,%, ^ и т. д. Но только с одним условием, что первый символ, который я ввожу в текстовое поле, не должен быть специальным символом.

Пример:

  1. @Test123 -- Недопустимый символ
  2. Test@123 --Действительный символ
  3. T@est123% --Действительный символ

Я пробовал это ng-pattern="/^([a-zA-Z0-9]+)([a-zA-Z0-9 &()_+@&\-=\\|,.\/?\s]+)$/" Но не работает.


person forgottofly    schedule 06.01.2017    source источник
comment
Вы не добавили символы @ и % во второй класс символов. Возможно, более подходящее выражение будет выглядеть так: /^[a-zA-Z0-9][A-Za-z0-9_!-,.-\/:-@[-`{-~-]*$/   -  person Wiktor Stribiżew    schedule 06.01.2017
comment
Кстати, если вам все равно, какие символы будут после первого, используйте ng-pattern="/^[a-zA-Z0-9]/". Не забудьте добавить ng-trim="false", если вы не хотите разрешать начальные/конечные пробелы в поле ввода.   -  person Wiktor Stribiżew    schedule 06.01.2017


Ответы (1)


Попробуй это

ng-pattern="/^[a-zA-Z0-9]+[^]*$/"

[a-zA-Z0-9]+ означает один из алфавита или числа и

[^]* означает все

person Mr_Perfect    schedule 06.01.2017
comment
Просто из любопытства: почему не ^[\w&[^_]].*$? Конечно, если _ не нужно исключать, то пересечение вам не нужно. - person D. Kovács; 06.01.2017