[英]Angular Email validation for empty and pattern
我正在評估電子郵件輸入是否為空或者其輸入格式是否錯誤。 如果是這樣,則emailError的值變為true且進一步的代碼無法執行
if(typeof($rootScope.email) === 'undefined' || /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($scope.email)){
$scope.emailError = true;
}
它評估空輸入,但沒有正確檢查模式。 我哪里做錯了?
編輯:html部分看起來像這樣:
<input ng-class="{true:'error-bron', false:'nonerror-bron'}[emailError===true]" ng-if="$root.lang ==='en'" type="email" maxlength="40" required class="bron-input" placeholder="Email" ng-model="$root.email"/>
此后,如果所有字段均有效,它將起作用:
if(!$scope.nameError && !$scope.emailError && !$scope.phoneError){
如果我將模式驗證放在html內,則它會在第一次檢查它時很好,但是在提交表單之后,用戶決定再次打開彈出窗口,則這些值最初是有效的,並且用戶甚至可以發送空電子郵件。 因此,為什么要在用戶按下“提交”按鈕時執行的此函數中檢查它。
做這樣的事情也許:
if(typeof($rootScope.email) === 'undefined' || !(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test($scope.email))){
$scope.emailError = true;
}
嘗試這個 :-
<input type="email" name="email" ng-model="email" ng-maxlength="100" ng-model-options="{ updateOn: blur }" ng-pattern = '/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i' required />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.