Mam wymóg weryfikacji adresu e-mail wprowadzonego, gdy użytkownik wychodzi z pola tekstowego.
Zajmowałem się tym, ale dostałem Walidacja Walidacja JScript; Nie chcę walidacji formy. Chcę walidacja textboxa.
Napisałem poniżej JScript, ale jeśli e-mail nieważny nie zwraca tej samej strony ".

 function validate(email) {

            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
            //var address = document.getElementById[email].value;
            if (reg.test(email) == false) 
            {
                alert('Invalid Email Address');
                return (false);
            }
 }
37
Ramasani Indrashaker 3 październik 2011, 17:19

8 odpowiedzi

Najlepsza odpowiedź

Zakładając, że wyrażenie regularne jest poprawne:

Wewnątrz tagów skryptów

function validateEmail(emailField){
        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

        if (reg.test(emailField.value) == false) 
        {
            alert('Invalid Email Address');
            return false;
        }

        return true;

}

W twoim texcie:

<input type="text" onblur="validateEmail(this);" />
73
Ben 25 lipiec 2017, 14:31

Wynik w isEmailValid może być użyty do testowania, czy składnia e-mail jest ważna.

var validEmailRegEx = /^[A-Z0-9_'%=+!`#~$*?^{}&|-]+([\.][A-Z0-9_'%=+!`#~$*?^{}&|-]+)*@[A-Z0-9-]+(\.[A-Z0-9-]+)+$/i
var isEmailValid = validEmailRegEx.test("Email To Test");
5
Santron Manibharathi 25 czerwiec 2014, 04:16
function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\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,}))$/;
    return re.test(email);
} 

Aby potwierdzić identyfikator e-mail w pracy JavaScript nad kodami.

3
Sanket Patel 6 marzec 2014, 20:48

Walidowanie e-maila to bardzo ważny punkt, zweryfikując formularz HTML. Na tej stronie omówiliśmy, jak potwierdzić e-mail za pomocą JavaScript:

E-mail jest łańcuchem (podzbiór znaków ASCII) rozdzielono na dwie części według symbolu @. "Personal_info" i domeny, to jest domena osobista_info @. Długość części osobistej_info może mieć do 64 znaków, a nazwa domeny może wynosić do 253 znaków. Personal_Info część zawiera następujące znaki ASCII.

  1. Wielkie litery (A-Z) i małe litery angielskie (A-Z).
  2. Cyfry (0-9).
  3. Postacie ! # $% & '* + - / =? ^ _ `{| } ~.
  4. Postać . (okres, kropka lub pełny przystanek) pod warunkiem, że nie jest to pierwszy lub ostatni charakter, a nie nadejdzie po drugim.

Nazwa domeny [na przykład Com, Org, Net, In, US, Info] Część zawiera litery, cyfry, myślniki i kropki.

Przykład prawidłowego identyfikatora e-mail

Mysite@ourearth.com.

My.ownite@ourearth.org.

Mysite@you.me.net.

Przykład nieprawidłowego identyfikatora e-mail

Mysite.ourearth.com [@ nie jest obecny]

MySite @ .com.my [TLD (domena na najwyższym poziomie) nie może zaczynać się od kropki "." ]

@ you.me.net [brak znaku przed @]

Mysite123@gmail.b [".b" nie jest ważnym TLD]

MySite @ .org.org [TLD nie może zaczynać się od kropki "." ]

.mysite @ mysite.org [E-mail nie powinien być uruchomiony "." ]

MySite () * @ gmail.com [Tutaj wyrażenie regularne umożliwia tylko znak, cyfra, podkreślenia i kreska]

Mysite..1234 @ Yahoo.com [Double Dots nie są dozwolone]

kod JavaScript, aby zatwierdzić identyfikator e-mail

function ValidateEmail(mail) {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w {2, 3})+$/.test(myForm.emailAddr.value)) {
            return (true)
        }
        alert("You have entered an invalid email address!")
        return (false)
    }

https://www.w3resource.com/javascript/form /form/epail-validation.php.

2
logesh kumar 4 sierpień 2020, 06:33

Czy sprawdzasz również poprawność serwera? To jest bardzo ważne.

Korzystanie z wyrażeń regularnych dla wiadomości e-mail nie jest uważany za najlepszą praktykę, ponieważ jest to prawie niemożliwe do prawidłowego zamknięcia wszystkich standardów otaczających e-mail. Jeśli musisz użyć wyrażeń regularnych, zazwyczaj zejdę na trasę czegoś takiego jak:

^.+@.+$

Co w zasadzie sprawdza, masz wartość, która zawiera @. Wróc to z weryfikacją, wysyłając e-mail na ten adres.

Każdy inny rodzaj regex oznacza, że ryzyko wyłączając całkowicie ważne adresy e-mail, inne niż zgadzam się z odpowiedzią dostarczoną przez @ben.

1
m.edmondson 3 październik 2011, 13:25

Jeśli chcesz zezwolić na akcent (patrz RFC 5322) i zezwalaj na nowe rozszerzenie domeny .queBec. Użyj tego wyrażenia:

/\b[a-zA-Z0-9\u00C0-\u017F._%+-]+@[a-zA-Z0-9\u00C0-\u017F.-]+\.[a-zA-Z]{2,}\b/
  • Część "U00C0- U017F" polega na pozwalanie akcentowi. Używamy tego zakresu Unicode.
  • "{2,}" po prostu mówią minimum 2 znaków dla przedłużenia domeny. Możesz to zastąpić przez "{2,63}", jeśli nie lubisz nieskończonego zakresu.

Na podstawie tego artykułu

Jsfiddle.

$(document).ready(function() {
var input = $('.input_field');
var result = $('.test_result');
        var regExpression = /\b[a-zA-Z0-9\u00C0-\u017F._%+-]+@[a-zA-Z0-9\u00C0-\u017F.-]+\.[a-zA-Z]{2,}\b/;
    
			$('.btnTest').click(function(){
          var isValid = regExpression.test(input.val());
          if (isValid)
              result.html('<span style="color:green;">This email is valid</span>');
           else
              result.html('<span style="color:red;">This email is not valid</span>');

			});

});
body {
    padding: 40px;
}

label {
    font-weight: bold;
}

input[type=text] {
    width: 20em
}
.test_result {
  font-size:4em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="search_field">Input</label>
<input type='text' class='input_field' />
<button type="button" class="btnTest">
Test
</button>
<br/>
<div class="test_result">
Not Tested
</div>
0
Benoit 7 kwiecień 2016, 19:02

enter image description here

<!DOCTYPE html>
    <html>
    <body>

    <h2>JavaScript Email Validation</h2>

    <input id="textEmail">

    <button type="button" onclick="myFunction()">Submit</button>

    <p id="demo" style="color: red;"></p>

    <script>
    function myFunction() {
        var email;

        email = document.getElementById("textEmail").value;

            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

            if (reg.test(textEmail.value) == false) 
            {
            document.getElementById("demo").style.color = "red";
                document.getElementById("demo").innerHTML ="Invalid EMail ->"+ email;
                alert('Invalid Email Address ->'+email);
                return false;
            } else{
            document.getElementById("demo").style.color = "DarkGreen";      
            document.getElementById("demo").innerHTML ="Valid Email ->"+email;
            }

       return true;
    }
    </script>

    </body>
    </html> 
0
Keshav Gera 14 czerwiec 2017, 10:29
<h2>JavaScript Email Validation</h2>

<input id="textEmail">

<button type="button" onclick="myFunction()">Submit</button>

<p id="demo" style="color: red;"></p>

<script>
function myFunction() {
    var email;

    email = document.getElementById("textEmail").value;

        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

        if (reg.test(textEmail.value) == false) 
        {
        document.getElementById("demo").style.color = "red";
            document.getElementById("demo").innerHTML ="Invalid EMail ->"+ email;
            alert('Invalid Email Address ->'+email);
            return false;
        } else{
        document.getElementById("demo").style.color = "DarkGreen";      
        document.getElementById("demo").innerHTML ="Valid Email ->"+email;
        }

   return true;
}
</script>
-1
lokesh 19 sierpień 2017, 09:17