Próbuję użyć wyrażenia regularnego dosprawdź poprawność adresu e-mail. Wydaje się, że w ogóle nie przeprowadza żadnej weryfikacji. Kiedy ładuję stronę przycisk Wyślij jest wyłączony z powodu $ dziewiczy, ale zaraz po wpisaniu litery przycisk staje się aktywny. Również jestem świadomy, że regex przyjmuje obecnie tylko duże litery. Poniższy kod jest moją formą:
<form name="myForm" ng-hide="email" >
Insert Email : <br/>
<input type="text" name="email" ng-pattern="/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]
{2,4}$/" ng-model="insert_email" required>
<br/>
<button ng-hide="email"
type="submit"
ng-disabled="myForm.email.$pristine || myForm.email.$invalid">Submit</button>
</form>
Nie jestem pewien, ale myślę, że problem może leżeć z samym regex.
Odpowiedzi:
0 dla odpowiedzi № 1wyślij wiadomość e-mail w myForm.email. $ pristine i myForm.email. $ invalid wygladać jak:
myForm.$pristine
i
myForm.$invalid
spróbuj także z wymaganiami ng zamiast wymaganymi
0 dla odpowiedzi nr 2
Wydaje się, że są dwie rzeczy. Wygląda na to, że wzorzec ng oczekuje wyrażenia zamiast atrybutu ciągu.
Musisz więc zawinąć go w ciąg, jeśli chcesz użyć inline expression
.
Tak jak w przypadku:
ng-pattern=""^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$""
Ponadto wydaje się, że występują pewne problemy z twoim regex. Zmieniłem to na:
ng-pattern=""^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$""
Wydaje się działać.