MeteorJS电子邮件表单验证
MeteorJS email form validation
这里的新手。我正在尝试为订阅时事通讯表单进行客户端表单验证。我的客户端代码就是这样。
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 = function(address) {
return /^[A-Z0-9'.1234z_%+-]+@[A-Z0-9.-]+'.[A-Z]{2,4}$/i.test(address);
};
在这种情况下,可以在提交处理程序中添加对isEmailValid
的调用。如果函数返回false
则可以显示错误,而不是调用addNewSubscriber
。
您可以在此处阅读有关电子邮件正则表达式的更多信息。
邮枪
如果您认为用户可能故意输入无效地址,您可以拿出大枪并调用邮件枪电子邮件验证 API。这牺牲了速度(结果可能需要几秒钟才能返回)以显着提高准确性(mailgun 执行诸如检查目标域上是否存在 MX 记录之类的操作)。我们在面向公众的形式中使用这种方法。
Meteor.methods({
isEmailValid: function(address) {
check(address, String);
// modify this with your key
var result = HTTP.get('https://api.mailgun.net/v2/address/validate', {
auth: 'api:pubkey-XXXXXXXXXXXXX',
params: {address: address.trim()}
});
if (result.statusCode === 200) {
// is_valid is the boolean we are looking for
return result.data.is_valid;
} else {
// the api request failed (maybe the service is down)
// consider giving the user the benefit of the doubt and return true
return true;
}
}
});
在此示例中,isEmailValid
作为方法实现,可以根据需要在服务器或客户端上调用。请注意,您需要获取 API 密钥,并使用 meteor add http
将http
包添加到您的应用中。
有关更多详细信息,请参阅文档。
相关文章:
- JAVASCRIPT验证表单中的日期
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 如何使用jQuery正确验证表单
- Javascript不会验证表单
- 如何使用javascript验证表单中的数据,然后调用php页面
- 包括来自另一个页面的Boostrap模态;t验证表单
- Javascript验证表单不重定向页面
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 引导复选框-x 选中时未正确更新 DOM - 如何验证表单
- Jquery 验证表单
- 验证表单中的 jQuery-UI 微调器
- 在 Jquery 中验证表单的输入字段
- 如何验证表单控制数据大小不超过2.5 mb
- 在表单进入Angular中的ng-submit之前验证表单
- Javascript表单验证:表单在错误返回时提交:
- 使用Angular.js验证表单输入的原始状态
- 正在复制验证表单
- 如何在转盘中逐步(3步)验证表单
- 使用javascript验证表单值
- 验证表单按id输入val