Javascript 电子邮件表单验证

Javascript 电子邮件表单验证,javascript,forms,validation,meteor,Javascript,Forms,Validation,Meteor,这里完全是新手。 我正在尝试对订阅时事通讯表单进行客户端表单验证。我的客户端代码就是这样 Template.body.events({ "submit .new-subscriber": function (event) { // This function is called when the new task form is submitted var newEmail = event.target.newEmail.value; if (newEm

这里完全是新手。 我正在尝试对订阅时事通讯表单进行客户端表单验证。我的客户端代码就是这样

Template.body.events({
    "submit .new-subscriber": function (event) {
      // This function is called when the new task form is submitted
      var newEmail = event.target.newEmail.value;
     if (newEmail is email?){

     Meteor.call("addNewSubscriber", newEmail);
     }

我不知道如何在这里执行表单验证?我可以在服务器端执行相同的操作吗?

根据具体情况,我们目前在Edthena使用两种不同的电子邮件验证方法。希望其中一个或两个都能满足您的需求

正则表达式 正则表达式可用于快速且肮脏的电子邮件验证。他们将捕获任何明显虚假的电子邮件,如
x@y.z
foo@bar
,但这大约是其准确性的极限。当现有用户没有动机输入无效地址时,我们在客户端的应用程序中使用这些。下面是一个例子:

var isEmailValid=函数(地址){
返回/^[A-Z0-9'.1234z%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$/i.test(地址);
};
在您的情况下,可以在提交处理程序中添加对
isEmailValid
的调用。如果函数返回
false
,则可以显示错误,而不是调用
addNewSubscriber

您可以阅读有关电子邮件正则表达式的更多信息

邮枪 如果您认为用户可能故意输入无效地址,您可以拿出大炮,并拨打电话。这与速度(结果可能需要几秒钟才能恢复)进行了权衡,从而显著提高了准确性(mailgun会做一些事情,比如检查目标域上是否存在MX记录)。我们在面向公众的表单中使用这种方法

Meteor.methods({
isEmailValid:函数(地址){
检查(地址、字符串);
//用你的钥匙修改这个
var result=HTTP.get('https://api.mailgun.net/v2/address/validate', {
auth:'api:pubkey-xxxxxxxx',
参数:{address:address.trim()}
});
如果(result.statusCode==200){
//_是否有效是我们正在寻找的布尔值
返回result.data.u是否有效;
}否则{
//api请求失败(可能服务已关闭)
/考虑给用户带来怀疑和回报的好处
返回true;
}
}
});
在本例中,
isEmailValid
作为一种方法实现,可以根据需要在服务器或客户端上调用。请注意,您需要获取API密钥,并使用meteor add http将
http
包添加到应用程序中


有关更多详细信息,请参阅。

检查本教程是否适用于您,@Etjana我可以学习本教程,谢谢。但它仍然不能帮助我验证用户是否真的输入了有效的电子邮件,如
name@email.com