Câu trả lời:
Bạn có thể sử dụng javascript cũ thường xuyên cho điều đó:
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})+$/;
hỗ trợ .museum TLD mới của như thế nào, vv
Hàm jQuery để xác thực email
Tôi thực sự không thích sử dụng plugin, đặc biệt khi biểu mẫu của tôi chỉ có một trường cần được xác thực. Tôi sử dụng chức năng này và gọi nó bất cứ khi nào tôi cần xác thực một trường mẫu email.
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test( $email );
}
và bây giờ để sử dụng này
if( !validateEmail(emailaddress)) { /* do stuff here */ }
Chúc mừng!
emailReg.test($email);
emailReg.text("")
true
. Tôi chỉ đơn giản là chức năng xuống khai báo của emailReg var sau đó:return ( $email.length > 0 && emailReg.test($email))
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
thànhvar emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/;
Tôi sẽ sử dụng plugin xác thực jQuery vì một vài lý do.
Bạn xác nhận, ok tuyệt vời, bây giờ những gì? Bạn cần hiển thị lỗi, xử lý xóa nó khi nó hợp lệ, hiển thị tổng cộng có bao nhiêu lỗi? Có rất nhiều thứ nó có thể xử lý cho bạn, không cần phải phát minh lại bánh xe.
Ngoài ra, một lợi ích to lớn khác là nó được lưu trữ trên CDN, phiên bản hiện tại tại thời điểm trả lời này có thể được tìm thấy ở đây: http://www.asp.net/ajaxL Library / CDNjQueryValidate16.ashx Điều này có nghĩa là thời gian tải nhanh hơn cho máy khách.
Nhìn vào http: //bassistance.de/jquery-plugins/jquery-plugin-validation/ . Đây là một plugin jQuery đẹp, cho phép xây dựng hệ thống xác nhận mạnh mẽ cho các biểu mẫu. Có một số mẫu hữu ích ở đây . Vì vậy, xác thực trường email trong biểu mẫu sẽ trông như vậy:
$("#myform").validate({
rules: {
field: {
required: true,
email: true
}
}
});
Xem tài liệu phương pháp Email để biết chi tiết và mẫu.
x@x
(đó là lạ) nó phải làm x@x.x
thế nào tôi có thể sửa nó?
$.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
Nguồn: htmldrive.com
Tôi muốn giới thiệu Verimail.js , nó cũng có một plugin JQuery .
Tại sao? Verimail hỗ trợ như sau:
Vì vậy, bên cạnh xác nhận, Verimail.js cũng cung cấp cho bạn các đề xuất. Vì vậy, nếu bạn nhập một email có TLD sai hoặc tên miền rất giống với một tên miền email phổ biến (hotmail.com, gmail.com, v.v.), nó có thể phát hiện điều này và đề nghị sửa.
Ví dụ:
Và như thế..
Để sử dụng nó với jQuery, chỉ cần bao gồm verimail.jquery.js trên trang web của bạn và chạy chức năng bên dưới:
$("input#email-address").verimail({
messageElement: "p#status-message"
});
Phần tử thông báo là một phần tử trong đó một thông báo sẽ được hiển thị. Đây có thể là tất cả mọi thứ từ "Email của bạn không hợp lệ" đến "Ý của bạn là ...?".
Nếu bạn có một biểu mẫu và muốn hạn chế nó để không thể gửi nó trừ khi email hợp lệ, thì bạn có thể kiểm tra trạng thái bằng hàm getVerimailStatus như dưới đây:
if($("input#email-address").getVerimailStatus() < 0){
// Invalid
}else{
// Valid
}
Hàm này trả về mã trạng thái số nguyên theo đối tượng Comfirm.AlphaMail.Verimail.Status. Nhưng quy tắc chung là bất kỳ mã nào dưới 0 là mã chỉ ra lỗi.
.getVerimailStatus()
không trả về mã trạng thái số, chỉ là giá trị chuỗi của success
,error
hoặc có thể pending
(không xác minh người cuối cùng).
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) */ }
điều này được cung cấp bởi người dùng Luca Filosofi trong câu trả lời này
@
ký tự với một @
ký tự khác . Như vậy @@
, nếu không bạn sẽ nhận được lỗi xây dựng.
Một giải pháp rất đơn giản là sử dụng xác nhận html5:
<form>
<input type="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">
<input type="submit">
</form>
Điều này thực hiện xác nhận kỹ lưỡng hơn, ví dụ: nó kiểm tra các dấu chấm liên tiếp trong tên người dùng như john..doe @ example.com
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);
}
Xem địa chỉ email xác thực bằng biểu thức chính quy trong JavaScript .
Như những người khác đã đề cập, bạn có thể sử dụng biểu thức chính quy để kiểm tra xem địa chỉ email có khớp với mẫu không. Nhưng bạn vẫn có thể có email phù hợp với mẫu nhưng tôi vẫn bị trả lại hoặc là email spam giả.
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
Bạn có thể sử dụng API để kiểm tra xem địa chỉ email có thật không và hiện đang hoạt động.
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.
}
})
Để biết thêm xem https://isitarealemail.com hoặc bài đăng trên blog
Nếu bạn có một hình thức cơ bản, chỉ cần tạo loại đầu vào của email:
<input type="email" required>
Điều này sẽ hoạt động cho các trình duyệt sử dụng các thuộc tính HTML5 và sau đó bạn thậm chí không cần JS. Chỉ sử dụng xác thực email ngay cả với một số tập lệnh ở trên sẽ không làm được gì nhiều vì:
some@email.com so@em.co my@fakemail.net
vv ... Tất cả sẽ xác nhận là email "thực". Vì vậy, bạn nên đảm bảo rằng người dùng phải nhập địa chỉ email của họ hai lần để đảm bảo rằng họ đặt cùng một địa chỉ. Nhưng để đảm bảo rằng địa chỉ email là thật sẽ rất khó nhưng rất thú vị để xem liệu có đường. Nhưng nếu bạn chỉ chắc chắn rằng đó là một email, hãy bám vào đầu vào HTML5.
Điều này hoạt động trong FireFox và Chrome. Nó có thể không hoạt động trong Internet Explorer ... Nhưng internet explorer tệ. Vậy thì ...
Vấn đề tôi gặp phải trong khi sử dụng câu trả lời của Fabian, là triển khai nó trong chế độ xem MVC vì @
biểu tượng Dao cạo . Bạn phải bao gồm một @
biểu tượng bổ sung để thoát khỏi nó, như vậy:@@
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
Tôi đã không nhìn thấy nó ở nơi khác trên trang này, vì vậy tôi nghĩ rằng nó có thể hữu ích.
Đây là một liên kết từ Microsoft mô tả việc sử dụng nó.
Tôi vừa kiểm tra mã ở trên và nhận được js sau:
function validateEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
Đó là làm chính xác những gì nó phải làm.
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
Điều gì đang xảy ra với mã của bạn?
@
biểu tượng trong một biểu thức chính thức .cshtml
. Thông thường nó sẽ cố gắng coi mọi thứ sau @
biểu tượng là mã dao cạo, nhưng gấp đôi @@
ngăn chặn điều đó.
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);
};
Sử dụng như thế này:
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" />
Hạ cánh tại đây ..... đã kết thúc tại đây: https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
... cung cấp regex sau:
/^[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])?)*$/
... mà tôi đã tìm thấy nhờ một ghi chú về plugin Xác thực jQuery readme: https://github.com/jzaefferer/jquery-validation/blob/master/README.md#reporting-an-su
Vì vậy, phiên bản cập nhật của @Fabian 's câu trả lời sẽ là:
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);
}
Mong rằng sẽ giúp
john..doe@example.com
nhưng muốn điều đó là sai
dùng cái này
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');
}
}
Lỗi nằm trong Plugin xác thực Jquery Chỉ xác thực với @ để thay đổi điều này
thay đổi mã này
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 );
}
Đối với những người muốn sử dụng một giải pháp duy trì tốt hơn so với các trận đấu RegEx dài ánh sáng gây rối, tôi đã viết lên một vài dòng mã. Thoose ai muốn lưu byte, hãy gắn bó với biến thể RegEx :)
Điều này hạn chế:
Dù sao, vẫn có thể rò rỉ qua, vì vậy hãy chắc chắn rằng bạn kết hợp điều này với xác thực phía máy chủ + xác minh liên kết email.
Đây là 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();
}}}}}}}}}
Bạn có thể sử dụng Xác thực jQuery và, trong một dòng HTML duy nhất, bạn có thể xác thực email và thông báo xác thực email:type="email" required data-msg-email="Enter a valid email account!"
Bạn có thể sử dụng dữ liệu-tin nhắn-email để đặt tin nhắn được cá nhân hóa hoặc nếu không không đặt tham số này và thông báo mặc định sẽ được hiển thị: "Vui lòng nhập địa chỉ email hợp lệ."
Ví dụ đầy đủ:
<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" );
Giới thiệu: TRANG WEB UI JQUERY
bạn sẽ thấy điều này: jquery.validate.js , thêm nó vào dự án của bạn
sử dụng nó như thế này:
<input id='email' name='email' class='required email'/>
Một lựa chọn đơn giản và đầy đủ khác:
<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();
});
}
});
Bạn có thể tạo chức năng của riêng bạn
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'));
Một cái đơn giản hóa tôi vừa làm, làm những gì tôi cần nó. Đã giới hạn nó chỉ là chữ và số, dấu chấm, gạch dưới và @.
<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");
}
}
Được thực hiện với sự giúp đỡ từ người khác
Regrec này ngăn chặn các tên miền trùng lặp như abc@abc.com.com.com.com, nó sẽ chỉ cho phép tên miền hai lần như abc@abc.co.in. Nó cũng không cho phép thống kê từ số như 123abc@abc.com
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)?$/,
Tất cả tốt nhất !!!!!
Xác thực email trong khi gõ, với xử lý trạng thái nút.
$("#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();
}
});
nếu bạn đang sử dụng xác nhận jquery
Tôi đã tạo một phương thức emailCustomFormat
được sử dụng regex
cho định dạng lưu ký của tôi, bạn có thể thay đổi nó để đáp ứng yêu cầu của bạn
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
sau đó bạn có thể sử dụng nó như thế này
$("#myform").validate({
rules: {
field: {
required: true,
emailCustomFormat : true
}
}
});
regex này chấp nhận
abc@abc.abc
, abc@abc.abcd
nhưng không phải cái này
abc@abc
, abc@abc.a
,abc@abc.abcde
hy vọng điều này sẽ giúp bạn