在运行剩余的javascript之前检查有效的电子邮件
我有一个文本框,用户需要插入有效的电子邮件地址。
当用户提交有效的电子邮件地址时,会在回发数据时显示加载图形。
下面的代码适用于显示加载图形,但它不会检查电子邮件地址是否有效。 任何人都可以帮忙吗?
$('#btnEmail1Submit').live ("click", function() { $('').appendTo(".emailEditContainer"); $('').appendTo(".emailEditContainer"); });
我想我需要在点击运行的函数周围放置一个if语句 – 所以类似于:
$('#btnEmail1Submit').live ("click", function() { if(emailvalid == true) { $('').appendTo(".emailEditContainer"); $('').appendTo(".emailEditContainer"); } });
我正在使用asp.net电子邮件validation – 它看起来像这样:
您应该使用正则表达式检查电子邮件的有效性
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,}))$/ $('#btnEmail1Submit').live ("click", function() { if(!email.match(re)) { alert('invalid email'); return false; } $('').appendTo(".emailEditContainer"); $(' ').appendTo(".emailEditContainer"); });
regexp来自JavaScript中的Validate电子邮件地址?
您需要使用正则表达式来测试电子邮件地址的有效性:
function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([az]{2,6}(?:\.[az]{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); };
这来自这个问题 ,所以请查看该主题以获取更多信息。
您需要使用用户提供的电子邮件地址调用该函数,因此我假设:
var email = $("#emailInput").val(); if(isValidEmailAddress(email)) { //Do stuff }
电子邮件validation已在SO和其他地方 多次讨论过。 简而言之,很难(不可能)做到完美,并且在最大化有效格式的覆盖范围和最小化误报之间进行权衡。 事实上,我所做的只是validation电子邮件地址是一项基本的健全性检查。 在伪代码中:
if (address.contains("@")) { .. // then ok }
其他任何事情都是徒劳的。 即使你花了很多年的时间构建一些非常复杂的正则表达式来遵守RFC822以获得最有效的地址(有真正的地址不符合RFC) – 你怎么知道这个收件箱实际存在?
你可以检查一下
function myClick() { Page_ClientValidate(); if (Page_IsValid) { return true; } else { return false; } }
如果你正在使用regularexpressionvalidation器,那么这可以使用….
如果您需要执行apsvalidation器来validation电子邮件地址,这似乎与您的问题相关,那么您需要在拨打电话之前调用生成的javascript来执行此操作 – 所以请致电:
如果(Page_ClientValidate)
做你的其他事情
但是,这将运行所有页面validation,而不仅仅是电子邮件。
如果您只需要为此运行一个validation调用,您可以查看页面上生成的javascript,并找到它为您的电子邮件validation调用的位置,然后调用它。 但是,我不建议这样做,因为它可能会在页面重新生成时发生变化。
请参阅CodeProject