Yanıtlar:
Bunun için normal eski javascript'i kullanabilirsiniz:
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})+$/;
etmek var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,6})+$/;
vb yeni TLD en benzeri .museum, desteklemeye
E-postayı Doğrulamak için jQuery İşlevi
Eklentileri kullanmaktan gerçekten hoşlanmıyorum, özellikle formumun yalnızca doğrulanması gereken bir alan varsa. Bu işlevi kullanıyorum ve e-posta form alanını doğrulamam gerektiğinde çağırıyorum.
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test( $email );
}
ve şimdi bunu kullanmak için
if( !validateEmail(emailaddress)) { /* do stuff here */ }
Şerefe!
emailReg.test($email);
emailReg.text("")
true
. Ben sadece e-postaRe var deklarasyonuna kadar fonksiyon var o zaman:return ( $email.length > 0 && emailReg.test($email))
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
içinvar emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/;
Ben kullanırım jQuery doğrulama eklentisi birkaç nedeni.
Doğruladın, tamam harika, şimdi ne olacak? Hatayı görüntülemeniz, geçerli olduğunda silmeyi işlemeniz, toplamda kaç hatayı görüntülemeniz gerekiyor? Sizin için idare edebileceği birçok şey var, tekerleği yeniden icat etmeye gerek yok.
Ayrıca, bir başka büyük fayda da bir CDN'de barındırılmasıdır, bu cevap sırasındaki mevcut sürüm burada bulunabilir: http://www.asp.net/ajaxLibrary/CDNjQueryValidate16.ashx Bu, istemci için daha hızlı yükleme süreleri anlamına gelir.
Bak http: //bassistance.de/jquery-plugins/jquery-plugin-validation/ . Formlar için güçlü doğrulama sistemi oluşturmaya izin veren güzel jQuery eklentisidir. Burada bazı yararlı örnekler var . Dolayısıyla, formdaki e-posta alanı doğrulaması şöyle görünecektir:
$("#myform").validate({
rules: {
field: {
required: true,
email: true
}
}
});
Ayrıntılar ve örnekler için E-posta yöntemi belgelerine bakın .
x@x
(bu garip) olmalı x@x.x
Bunu nasıl düzeltebilirim?
$.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
Kaynak: htmldrive.com
Verimail.js'yi tavsiye ederim , ayrıca bir JQuery eklentisi var .
Neden? Verimail aşağıdakileri destekler:
Doğrulamanın yanı sıra, Verimail.js de size önerilerde bulunur. Bu nedenle, ortak bir e-posta etki alanına (hotmail.com, gmail.com, vb.) Çok benzeyen yanlış TLD veya etki alanına sahip bir e-posta yazarsanız, bunu algılayabilir ve bir düzeltme önerebilir.
Örnekler:
Ve bunun gibi..
JQuery ile kullanmak için sitenize verimail.jquery.js dosyasını ekleyin ve aşağıdaki işlevi çalıştırın:
$("input#email-address").verimail({
messageElement: "p#status-message"
});
Mesaj öğesi, içinde mesajın gösterileceği bir öğedir. Bu, "E-postanız geçersiz" ile "Bunu mu demek istediniz ...?" İle ilgili her şey olabilir.
Bir formunuz varsa ve e-posta geçerli olmadığı sürece gönderilememesi için formunuzu kısıtlamak istiyorsanız, aşağıda gösterildiği gibi getVerimailStatus işlevini kullanarak durumu kontrol edebilirsiniz:
if($("input#email-address").getVerimailStatus() < 0){
// Invalid
}else{
// Valid
}
Bu işlev, Comfirm.AlphaMail.Verimail.Status nesnesine göre bir tamsayı durum kodu döndürür. Ancak genel kural, 0'ın altındaki kodların hataları gösteren kodlar olmasıdır.
.getVerimailStatus()
Sayısal durum kodları, sadece bir dize değerini dönmez success
, error
muhtemelen ya pending
(sonuncusu doğrulamadım).
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) */ }
Bu cevap bu cevap kullanıcı Luca Filosofi tarafından sağlanan bu cevap
@
karakterden başka bir @
karakterle kaçmayı unutmayın . Bunun gibi @@
, aksi takdirde derleme hatası alırsınız.
Çok basit bir çözüm html5 doğrulaması kullanmaktır:
<form>
<input type="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">
<input type="submit">
</form>
Bu, daha kapsamlı bir doğrulama gerçekleştirir, örneğin, john..doe @ example.com gibi kullanıcı adında birbirini izleyen noktalara karşı kontrol eder.
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);
}
Bkz JavaScript düzenli ifade kullanarak doğrulamak e-posta adresi .
Diğerlerinin de belirttiği gibi, e-posta adresinin bir kalıpla eşleşip eşleşmediğini kontrol etmek için normal ifadeyi kullanabilirsiniz. Ancak yine de kalıpla eşleşen e-postalarınız olabilir, ancak yine de sıçrama veya sahte spam e-postalarım olabilir.
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
E-posta adresinin gerçek ve şu anda etkin olup olmadığını kontrol edecek bir API kullanabilirsiniz.
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.
}
})
Daha fazla bilgi için https://isitarealemail.com veya blog gönderisine bakın
Temel bir formunuz varsa, giriş e-posta türünü yapmanız yeterlidir:
<input type="email" required>
Bu, HTML5 özniteliklerini kullanan tarayıcılar için çalışır ve daha sonra JS'ye bile ihtiyacınız yoktur. Yukarıdaki komut dosyalarından bazılarında bile e-posta doğrulamasını kullanmak çok işe yaramaz:
some@email.com so@em.co my@fakemail.net
vb ... Hepsi "gerçek" e-posta olarak doğrulanacaktır. Bu nedenle, kullanıcının aynı adresi girmesini sağlamak için e-posta adresini iki kez girmesi gerektiğinden emin olmak daha iyi olur. Ancak e-posta adresinin gerçek olduğunu garanti etmek çok zor olurdu, ancak bir yol. Ancak, bunun bir e-posta olduğundan emin değilseniz, HTML5 girişine sadık kalın.
Bu FireFox ve Chrome'da çalışır. Internet Explorer'da çalışmayabilir ... Ama internet explorer berbat. İşte o zaman ...
Fabian'ın cevabını kullanırken karşılaştığım problem, Razor @
sembolü nedeniyle bir MVC görünümünde uygulamak . Bundan @
kaçmak için ek bir sembol eklemeniz gerekir, şöyle:@@
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
Bu sayfada başka bir yerde görmedim, bu yüzden yararlı olabileceğini düşündüm.
İşte Microsoft'un kullanımını açıklayan bir bağlantı .
Ben sadece yukarıdaki kodu test ve aşağıdaki js var:
function validateEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
Bu da tam olarak ne yapması gerektiğini yapıyor.
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
ne oluyor?
@
bir regex'te sembol üretmektir .cshtml
. Normalde @
sembolden sonraki her şeyi ustura kodu olarak ele almaya çalışır , ancak çift bunu @@
önler.
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);
};
Şunun gibi kullanın:
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" />
Buraya indi ..... burada sona erdi: https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
... aşağıdaki normal ifadeyi sağladı:
/^[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])?)*$/
... jQuery Validation eklentisi benioku ile ilgili bir not sayesinde buldum: https://github.com/jzaefferer/jquery-validation/blob/master/README.md#reporting-an-issue
Yani, güncellenmiş sürümü @Fabian 'ın cevabı şöyle olacaktır:
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);
}
umarım yardımcı olur
john..doe@example.com
ama bunun yanlış olmasını istiyor
bunu kullan
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');
}
}
Hata Jquery Doğrulama Doğrulama Eklentisi'nde Sadece bunu değiştirmek için @ ile doğrulanır
kodu bununla değiştir
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 );
}
Yıkıcı, yıl boyu süren RegEx maçlarından daha iyi korunabilir bir çözüm kullanmak isteyenler için , birkaç satır kod yazdım. Bayt kaydetmek isteyenleri düşünün, RegEx varyantına sadık kalın :)
Bu kısıtlar:
Her neyse, sızıntı yapmak hala mümkün, bu yüzden bunu sunucu tarafı doğrulama + e-posta bağlantısı doğrulaması ile birleştirdiğinizden emin olun.
İşte 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();
}}}}}}}}}
JQuery Validation'u kullanabilir ve tek bir HTML satırında e-postayı ve e-posta doğrulama mesajını doğrulayabilirsiniz:type="email" required data-msg-email="Enter a valid email account!"
Kişisel bir mesaj yerleştirmek veya başka bir şekilde bu parametreyi yerleştirmek için data-msg-email parametresini kullanabilirsiniz; varsayılan mesaj görüntülenir: "Lütfen geçerli bir e-posta adresi girin."
Tam örnek:
<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" );
Referans: JQUERY UI WEB SİTESİ
şunu görmelisin: jquery.validate.js , projenize ekleyin
bu şekilde kullanarak:
<input id='email' name='email' class='required email'/>
Başka bir basit ve eksiksiz seçenek:
<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();
});
}
});
Kendi işlevinizi oluşturabilirsiniz
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'));
Yeni yaptığım basitleştirilmiş bir şey, ihtiyacım olanı yapıyor. Sadece alfasayısal, nokta, alt çizgi ve @ ile sınırlandırılmıştır.
<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");
}
}
Başkalarının yardımıyla yapıldı
Bu normal ifade, abc@abc.com.com.com.com gibi yinelenen alan adlarını önler; abc@abc.co.in gibi yalnızca iki kez alan adına izin verir. Ayrıca 123abc@abc.com gibi numaralardan statring yapılmasına izin vermez
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)?$/,
Herşey gönlünce olsun !!!!!
Düğme durumu işlerken, yazarken e-postayı doğrulayın.
$("#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();
}
});
jquery doğrulaması kullanıyorsanız
Ben bir yöntem oluşturdu emailCustomFormat
kullanılan regex
size koßulları karşılamak için değiştirebilirsiniz benim custm formatı için
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
o zaman böyle kullanabilirsiniz
$("#myform").validate({
rules: {
field: {
required: true,
emailCustomFormat : true
}
}
});
bu normal ifade kabul edildi
abc@abc.abc
, abc@abc.abcd
ama bu değil
abc@abc
, abc@abc.a
,abc@abc.abcde
umarım bu sana yardımcı olur