Antworten:
Sie können dafür normales altes Javascript verwenden:
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
, var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,6})+$/;
um die neueren TLDs wie .museum usw. zu unterstützen
jQuery-Funktion zum Überprüfen von E-Mails
Ich mag es wirklich nicht, Plugins zu verwenden, besonders wenn mein Formular nur ein Feld enthält, das validiert werden muss. Ich benutze diese Funktion und rufe sie auf, wenn ich ein E-Mail-Formularfeld validieren muss.
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test( $email );
}
und jetzt dies zu nutzen
if( !validateEmail(emailaddress)) { /* do stuff here */ }
Prost!
emailReg.test($email);
emailReg.text("")
true
. Ich würde einfach die Funktion bis auf die Deklaration der emailReg var dann diese:return ( $email.length > 0 && emailReg.test($email))
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
zuvar emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/;
Ich würde das jQuery-Validierungs-Plugin verwenden aus mehreren Gründen verwenden.
Du hast bestätigt, ok großartig, was nun? Sie müssen den Fehler anzeigen, ihn löschen, wenn er gültig ist, und anzeigen, wie viele Fehler insgesamt möglicherweise auftreten. Es gibt viele Dinge, die es für Sie erledigen kann, ohne das Rad neu erfinden zu müssen.
Ein weiterer großer Vorteil ist, dass es auf einem CDN gehostet wird. Die aktuelle Version zum Zeitpunkt dieser Antwort finden Sie hier: http://www.asp.net/ajaxLibrary/CDNjQueryValidate16.ashx Dies bedeutet schnellere Ladezeiten für den Client.
Schauen Sie sich http: //bassistance.de/jquery-plugins/jquery-plugin-validation/ an . Es ist ein schönes jQuery-Plugin, mit dem ein leistungsstarkes Validierungssystem für Formulare erstellt werden kann. Es gibt einige nützliche Proben hier . Die Validierung von E-Mail-Feldern in Form sieht also folgendermaßen aus:
$("#myform").validate({
rules: {
field: {
required: true,
email: true
}
}
});
Weitere Informationen und Beispiele finden Sie in der Dokumentation zur E-Mail-Methode .
x@x
(das ist komisch) es muss x@x.x
Wie kann ich das beheben?
$.validator.methods.email = function( value, element ) { return this.optional( element ) || //^.+@.+\..+$/.test( value ); }
<script type="text/javascript">
$(document).ready(function() {
$('.form_error').hide();
$('#submit').click(function(){
var name = $('#name').val();
var email = $('#email').val();
var phone = $('#phone').val();
var message = $('#message').val();
if(name== ''){
$('#name').next().show();
return false;
}
if(email== ''){
$('#email').next().show();
return false;
}
if(IsEmail(email)==false){
$('#invalid_email').show();
return false;
}
if(phone== ''){
$('#phone').next().show();
return false;
}
if(message== ''){
$('#message').next().show();
return false;
}
//ajax call php page
$.post("send.php", $("#contactform").serialize(), function(response) {
$('#contactform').fadeOut('slow',function(){
$('#success').html(response);
$('#success').fadeIn('slow');
});
});
return false;
});
});
function IsEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if(!regex.test(email)) {
return false;
}else{
return true;
}
}
</script>
<form action="" method="post" id="contactform">
<table class="contact-table">
<tr>
<td><label for="name">Name :</label></td>
<td class="name"> <input name="name" id="name" type="text" placeholder="Please enter your name" class="contact-input"><span class="form_error">Please enter your name</span></td>
</tr>
<tr>
<td><label for="email">Email :</label></td>
<td class="email"><input name="email" id="email" type="text" placeholder="Please enter your email" class="contact-input"><span class="form_error">Please enter your email</span>
<span class="form_error" id="invalid_email">This email is not valid</span></td>
</tr>
<tr>
<td><label for="phone">Phone :</label></td>
<td class="phone"><input name="phone" id="phone" type="text" placeholder="Please enter your phone" class="contact-input"><span class="form_error">Please enter your phone</span></td>
</tr>
<tr>
<td><label for="message">Message :</label></td>
<td class="message"><textarea name="message" id="message" class="contact-input"></textarea><span class="form_error">Please enter your message</span></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" class="contactform-buttons" id="submit"value="Send" />
<input type="reset" class="contactform-buttons" id="" value="Clear" />
</td>
</tr>
</table>
</form>
<div id="success" style="color:red;"></div>
<!-- Dont forget to include the jQuery library here -->
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#validate").keyup(function(){
var email = $("#validate").val();
if(email != 0)
{
if(isValidEmailAddress(email))
{
$("#validEmail").css({
"background-image": "url('validYes.png')"
});
} else {
$("#validEmail").css({
"background-image": "url('validNo.png')"
});
}
} else {
$("#validEmail").css({
"background-image": "none"
});
}
});
});
function isValidEmailAddress(emailAddress) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}
</script>
<style>
#validEmail
{
margin-top: 4px;
margin-left: 9px;
position: absolute;
width: 16px;
height: 16px;
}
.text
{
font-family: Arial, Tahoma, Helvetica;
}
</style>
<title>Live Email Validation with jQuery Demo</title>
</head>
<body>
<div class="text"><h1>Reynoldsftw.com - Live Email Validation</h1><h2>Type in an email address in the box below:</h2></div>
<div><input type="text" id="validate" width="30"><span id="validEmail"></span></div>
<div class="text"><P>More script and css style
Quelle: htmldrive.com
Ich würde Verimail.js empfehlen , es hat auch ein JQuery-Plugin .
Warum? Verimail unterstützt Folgendes:
Neben der Validierung gibt Ihnen Verimail.js auch Vorschläge. Wenn Sie also eine E-Mail mit der falschen TLD oder Domain eingeben, die einer allgemeinen E-Mail-Domain (hotmail.com, gmail.com usw.) sehr ähnlich ist, kann dies erkannt und eine Korrektur vorgeschlagen werden.
Beispiele:
Und so weiter..
Um es mit jQuery zu verwenden, fügen Sie einfach verimail.jquery.js in Ihre Site ein und führen Sie die folgende Funktion aus:
$("input#email-address").verimail({
messageElement: "p#status-message"
});
Das Nachrichtenelement ist ein Element, in dem eine Nachricht angezeigt wird. Dies kann alles sein von "Ihre E-Mail ist ungültig" bis "Meinten Sie ...?".
Wenn Sie ein Formular haben und es so einschränken möchten, dass es nur gesendet werden kann, wenn die E-Mail gültig ist, können Sie den Status mithilfe der Funktion getVerimailStatus wie folgt überprüfen:
if($("input#email-address").getVerimailStatus() < 0){
// Invalid
}else{
// Valid
}
Diese Funktion gibt einen ganzzahligen Statuscode gemäß dem Objekt Comfirm.AlphaMail.Verimail.Status zurück. Die allgemeine Faustregel lautet jedoch, dass alle Codes unter 0 Codes sind, die Fehler anzeigen.
.getVerimailStatus()
nicht numerischen Statuscode zurückgeben, nur einen String - Wert von success
, error
oder möglicherweise pending
(nicht bestätigte die letzten).
function isValidEmailAddress(emailAddress) {
var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
return pattern.test(emailAddress);
};
if( !isValidEmailAddress( emailaddress ) ) { /* do stuff here (email is invalid) */ }
Dies wurde von Benutzer Luca Filosofi in dieser Antwort diese Antwort zur Verfügung gestellt
@
Zeichen mit einem anderen @
Zeichen zu maskieren. Wie @@
sonst, sonst erhalten Sie einen Build-Fehler.
Eine sehr einfache Lösung ist die Verwendung der HTML5-Validierung:
<form>
<input type="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">
<input type="submit">
</form>
Dies führt eine gründlichere Validierung durch, z. B. wird nach aufeinanderfolgenden Punkten im Benutzernamen wie john..doe @ example.com gesucht
function isValidEmail(email)
{
return /^[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,4}$/.test(email)
&& /^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*/.test(email);
}
Siehe Überprüfen der E-Mail-Adresse mit regulären Ausdrücken in JavaScript .
Wie bereits erwähnt, können Sie mithilfe eines regulären Ausdrucks überprüfen, ob die E-Mail-Adresse einem Muster entspricht. Aber Sie können immer noch E-Mails haben, die dem Muster entsprechen, aber meine Bounce- oder gefälschten Spam-E-Mails sind immer noch.
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
Sie können eine API verwenden, die überprüft, ob die E-Mail-Adresse echt und derzeit aktiv ist.
var emailAddress = "foo@bar.com"
response = $.get("https://isitarealemail.com/api/email/validate?email=" +
emailAddress,
function responseHandler(data) {
if (data.status === 'valid') {
// the email is valid and the mail box is active
} else {
// the email is incorrect or unable to be tested.
}
})
Weitere Informationen finden Sie unter https://isitarealemail.com oder im Blogbeitrag
Wenn Sie ein Grundformular haben, geben Sie einfach den Typ der E-Mail-Eingabe ein:
<input type="email" required>
Dies funktioniert für Browser, die HTML5-Attribute verwenden, und dann benötigen Sie nicht einmal JS. Nur die E-Mail-Validierung selbst mit einigen der oben genannten Skripte zu verwenden, wird seitdem nicht viel bewirken:
some@email.com so@em.co my@fakemail.net
etc ... Werden alle als "echte" E-Mails validiert. Sie sollten also besser sicherstellen, dass der Benutzer seine E-Mail-Adresse zweimal eingeben muss, um sicherzustellen, dass er dieselbe eingibt. Es wäre jedoch sehr schwierig, aber sehr interessant zu sehen, ob eine E-Mail-Adresse vorhanden ist Weg. Wenn Sie jedoch nur sicherstellen möchten, dass es sich um eine E-Mail handelt, bleiben Sie bei der HTML5-Eingabe.
Dies funktioniert in FireFox und Chrome. Es funktioniert möglicherweise nicht in Internet Explorer ... Aber Internet Explorer ist scheiße. Also dann ist da noch das ...
Das Problem, auf das ich bei der Verwendung von Fabians Antwort gestoßen bin, ist die Implementierung in einer MVC-Ansicht aufgrund des Razor- @
Symbols. Sie müssen ein zusätzliches @
Symbol einfügen, um es zu umgehen, wie folgt:@@
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
Ich habe es an keiner anderen Stelle auf dieser Seite gesehen, daher dachte ich, es könnte hilfreich sein.
Hier ist ein Link von Microsoft, der die Verwendung beschreibt.
Ich habe gerade den obigen Code getestet und die folgenden js erhalten:
function validateEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
Welches macht genau das, was es tun soll.
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
Was passiert mit Ihrem Code?
@
Symbol in einem regulären Ausdruck in .cshtml
. Normalerweise würde es versuchen, alles nach dem @
Symbol als Rasiermessercode zu behandeln , aber das Doppelte @@
verhindert dies.
function isValidEmail(emailText) {
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
return pattern.test(emailText);
};
Verwenden Sie wie folgt:
if( !isValidEmail(myEmail) ) { /* do things if myEmail is valid. */ }
<script type = "text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type = "text/javascript">
function ValidateEmail(email) {
var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
return expr.test(email);
};
$("#btnValidate").live("click", function () {
if (!ValidateEmail($("#txtEmail").val())) {
alert("Invalid email address.");
}
else {
alert("Valid email address.");
}
});
</script>
<input type = "text" id = "txtEmail" />
<input type = "button" id = "btnValidate" value = "Validate" />
Hier gelandet ..... hier gelandet: https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
... die den folgenden regulären Ausdruck lieferten:
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
... was ich dank eines Hinweises in der Readme-Datei des jQuery Validation-Plugins gefunden habe: Datei https://github.com/jzaefferer/jquery-validation/blob/master/README.md#reporting-an-issue
So ist die aktualisierte Version von @Fabian ‚s Antwort wäre:
function IsEmail(email) {
var regex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
return regex.test(email);
}
Ich hoffe, das hilft
john..doe@example.com
aber ich möchte, dass das falsch war
benutze das
if ($this.hasClass('tb-email')) {
var email = $this.val();
var txt = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!txt.test(email)) {
e.preventDefault();
$this.addClass('error');
} else {
$this.removeClass('error');
}
}
Fehler ist im Jquery Validation Validation Plugin. Validiert nur mit @, um dies zu ändern
Ändern Sie den Code in diesen
email: function( value, element ) {
// From http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29
// Retrieved 2014-01-14
// If you have a problem with this implementation, report a bug against the above spec
// Or use custom methods to implement your own email validation
return this.optional( element ) || /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( value );
}
Für diejenigen, die eine besser wartbare verwenden möchten Lösung als störende, leichtjährige RegEx-Übereinstimmungen verwenden , habe ich ein paar Codezeilen geschrieben. Wer Bytes sparen will, bleibt bei der RegEx-Variante :)
Dies schränkt ein:
Wie auch immer, es ist immer noch möglich, durchzulaufen. Kombinieren Sie dies also unbedingt mit einer serverseitigen Validierung + E-Mail-Link-Überprüfung.
Hier ist die JSFiddle
//validate email
var emailInput = $("#email").val(),
emailParts = emailInput.split('@'),
text = 'Enter a valid e-mail address!';
//at least one @, catches error
if (emailParts[1] == null || emailParts[1] == "" || emailParts[1] == undefined) {
yourErrorFunc(text);
} else {
//split domain, subdomain and tld if existent
var emailDomainParts = emailParts[1].split('.');
//at least one . (dot), catches error
if (emailDomainParts[1] == null || emailDomainParts[1] == "" || emailDomainParts[1] == undefined) {
yourErrorFunc(text);
} else {
//more than 2 . (dots) in emailParts[1]
if (!emailDomainParts[3] == null || !emailDomainParts[3] == "" || !emailDomainParts[3] == undefined) {
yourErrorFunc(text);
} else {
//email user
if (/[^a-z0-9!#$%&'*+-/=?^_`{|}~]/i.test(emailParts[0])) {
yourErrorFunc(text);
} else {
//double @
if (!emailParts[2] == null || !emailParts[2] == "" || !emailParts[2] == undefined) {
yourErrorFunc(text);
} else {
//domain
if (/[^a-z0-9-]/i.test(emailDomainParts[0])) {
yourErrorFunc(text);
} else {
//check for subdomain
if (emailDomainParts[2] == null || emailDomainParts[2] == "" || emailDomainParts[2] == undefined) {
//TLD
if (/[^a-z]/i.test(emailDomainParts[1])) {
yourErrorFunc(text);
} else {
yourPassedFunc();
}
} else {
//subdomain
if (/[^a-z0-9-]/i.test(emailDomainParts[1])) {
yourErrorFunc(text);
} else {
//TLD
if (/[^a-z]/i.test(emailDomainParts[2])) {
yourErrorFunc(text);
} else {
yourPassedFunc();
}}}}}}}}}
Sie können jQuery Validation verwenden und in einer einzigen HTML-Zeile die E-Mail und die E-Mail-Validierungsnachricht validieren:type="email" required data-msg-email="Enter a valid email account!"
Sie können den Parameter data-msg-email verwenden , um eine personalisierte Nachricht zu platzieren, oder diesen Parameter anderweitig nicht platzieren. Die Standardnachricht wird angezeigt: "Bitte geben Sie eine gültige E-Mail-Adresse ein."
Vollständiges Beispiel:
<form class="cmxform" id="commentForm" method="get" action="">
<fieldset>
<p>
<label for="cemail">E-Mail (required)</label>
<input id="cemail" type="email" name="email" required data-msg-email="Enter a valid email account!">
</p>
<p>
<input class="submit" type="submit" value="Submit">
</p>
</fieldset>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.js"></script>
<script>
$("#commentForm").validate();
</script>
if($("input#email-address").getVerimailStatus() < 0) {
(incorrect code)
}
if($("input#email-address").getVerimailStatus() == 'error') {
(right code)
}
checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" );
Referenz: JQUERY UI WEBSITE
Sie sollten Folgendes sehen: jquery.validate.js , fügen Sie es Ihrem Projekt hinzu
Verwenden Sie es wie folgt:
<input id='email' name='email' class='required email'/>
Eine weitere einfache und vollständige Option:
<input type="text" id="Email"/>
<div id="ClasSpan"></div>
<input id="ValidMail" type="submit" value="Valid"/>
function IsEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
$("#ValidMail").click(function () {
$('span', '#ClasSpan').empty().remove();
if (IsEmail($("#Email").val())) {
//aqui mi sentencia
}
else {
$('#ClasSpan').append('<span>Please enter a valid email</span>');
$('#Email').keypress(function () {
$('span', '#itemspan').empty().remove();
});
}
});
Sie können Ihre eigene Funktion erstellen
function emailValidate(email){
var check = "" + email;
if((check.search('@')>=0)&&(check.search(/\./)>=0))
if(check.search('@')<check.split('@')[1].search(/\./)+check.search('@')) return true;
else return false;
else return false;
}
alert(emailValidate('your.email@yahoo.com'));
Eine vereinfachte, die ich gerade gemacht habe, macht das, was ich brauche. Habe es auf nur alphanumerisch, Punkt, Unterstrich und @ beschränkt.
<input onKeyUp="testEmailChars(this);"><span id="a"></span>
function testEmailChars(el){
var email = $(el).val();
if ( /^[a-zA-Z0-9_@.-]+$/.test(email)==true ){
$("#a").html("valid");
} else {
$("#a").html("not valid");
}
}
Mit Hilfe anderer gemacht
Dieser reguläre Ausdruck verhindert doppelte Domainnamen wie abc@abc.com.com.com.com. Er erlaubt nur zwei Domains wie abc@abc.co.in. Es ist auch nicht möglich, eine Nummer von 123abc@abc.com anzugeben
regexp: /^([a-zA-Z])+([a-zA-Z0-9_.+-])+\@(([a-zA-Z])+\.+?(com|co|in|org|net|edu|info|gov|vekomy))\.?(com|co|in|org|net|edu|info|gov)?$/,
Alles Gute !!!!!
Überprüfen Sie E-Mails während der Eingabe mit der Bearbeitung des Schaltflächenstatus.
$("#email").on("input", function(){
var email = $("#email").val();
var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (!filter.test(email)) {
$(".invalid-email:empty").append("Invalid Email Address");
$("#submit").attr("disabled", true);
} else {
$("#submit").attr("disabled", false);
$(".invalid-email").empty();
}
});
Wenn Sie die jquery-Validierung verwenden
Ich habe eine Methode erstellt emailCustomFormat
, die regex
für mein Custm-Format verwendet wird. Sie können sie ändern, um Ihren Anforderungen zu entsprechen
jQuery.validator.addMethod("emailCustomFormat", function (value, element) {
return this.optional(element) || /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/.test(value);
}, abp.localization.localize("FormValidationMessageEmail"));// localized message based on current language
dann können Sie es so verwenden
$("#myform").validate({
rules: {
field: {
required: true,
emailCustomFormat : true
}
}
});
Diese Regex akzeptieren
abc@abc.abc
, abc@abc.abcd
aber nicht das
abc@abc
, abc@abc.a
,abc@abc.abcde
hoffe das hilft dir