/ / Regex problemy z angularjs - javascript, html5, angularjs

Problemy z regeksem z angularami - javascript, html5, angularjs

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 № 1

wyś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ć.

Demonstracja Plunkera