更新: 問題は私がこれをテストした方法である可能性がありますか? 私はブラウザで(Developer Toolsを介して)変更を加え、ng-patternを変更し、検証が進むことを期待してこれをテストしました。 (ブラウザの)コードの変更が行われていない、つまり再評価が行われていない可能性がありますか? Angularjs正規表現の大文字小文字を区別しない修飾子が機能しない
は私が http://www.regular-expressions.info/email.html\A[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\z
私のコードでは、以下のメールアドレスパターンを使用しようとしています:
<input type="email" name="email" ng-model="email" ng-pattern="/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/" id="email-1" value="" required="" class="ng-pristine ng-untouched ng-empty ng-valid-email ng-invalid ng-invalid-required ng-valid-pattern">
これは大文字と小文字が区別されます。私は 'i'モディファイアを使ってみました。
"/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i"
ただし、それでも大文字の文字は使用できません(無効なメールエラーメッセージが表示されます)。
私はhttps://github.com/angular/angular.js/issues/1437に出くわしました。しかし、私はそれ以降のバージョン(1.2)を使用しています。
私もA-Zを試しました。
"/^[A-Za-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$/"
このパターンは大文字と小文字を区別しません。
ありがとうございました。
私はあなたの正規表現のパターンで問題がないと思う。 [パターンをテストしてうまくいくようです](https://regex101.com/r/8tSW7k/1)。 – Casper
ありがとう@キャスパー!私は少なくとも「/^[A-Za-z0-9 ...]はうまくいくはずだと思った。私はさらに情報を追加しました( 'Update'を見てください)。 – sam