簡體   English   中英

角電子郵件驗證為空和模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM