Във формуляр - име на полето искам да направя валидиране срещу
- Трябва да позволяват само символи от тип "Алфа"
- Оставете място
- Разрешаване на някои специални знаци -
_ / - . ’
Опитах,
ng-pattern="/^[a-z]+[_++/+-+.+’][a-z]*$/"
Изглежда, че съм пропуснал нещо, тъй като не работи!
Отговори:
3 за отговор № 1Да видим:
- Трябва да позволяват само символи от тип "Алфа" =>
[a-zA-Z]
- Оставете място =>
[ ]
илиs
- Разрешаване на някои специални знаци -
_ / - . ’ "
=>[_\/.’"-]
Така че, съчетавайки всичко това, моделът ще изглежда така:
ng-pattern="/^[a-zA-Z _\/.’"-]+$/"
Това съвпада с 1 или повече (+
) символи от разрешения набор.
За да забраните водещото / крайното бяло пространство, използвайте
ng-pattern="/^[a-zA-Z_\/.’"-]+(?: +[A-Za-z_\/.’"-]+)*$/" ng-trim="false"
Вижте регекс демо
Най- ng-trim="false"
ще предотврати отрязването на входа, изпратен до двигателя с регенерация. Новият регекс ще съвпадне:
^
- стартиране на низ[a-zA-Z_\/.’"-]+
- 1 или повече букви или разрешени символи, различни от интервала(?: +[A-Za-z_\/.’"-]+)*
- нула или повече последователности от:+
- (или,s+
) - 1 или повече интервали (бяло пространство)[A-Za-z_\/.’"-]+
- виж по-горе
$
- края на низа.
1 за отговор № 2
/^([a-z _/."-])+$/i
би направил. Ако искате пространство характер вместо просто пространство, използвайте /(^[a-z_/."-]|s)+$/i
.