RAL*_*RAL 11 email validation node.js express angular
我希望该电子邮件的格式如下:a@bc
哪种方法最好?
我有一个注册组件,我有这样的字段:
<mat-form-field>
<input matInput placeholder="Email" name="email" [(ngModel)]="email" required>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
在我的 usersRouter 我有注册功能:
router.post('/users/register', (req, res) => {
...
const user = new User({
...
email: req.body.email,
...
});
...
});
Run Code Online (Sandbox Code Playgroud)
另外,我使用 mongo 并且在 UserSchema 中我有这个用于电子邮件:
email: {
type: String,
required: true
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Bal*_*ács 13
使用这样的正则表达式:
解决方案1:
^[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])?)*$
Run Code Online (Sandbox Code Playgroud)
示例代码:
const emailToValidate = 'a@a.com';
const emailRegexp = /^[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])?)*$/;
console.log(emailRegexp.test(emailToValidate));
Run Code Online (Sandbox Code Playgroud)
解决方案2:
因为您使用 angular,所以您可以使用 Validators.email 在前端验证电子邮件。
如果您在此处查看 Validators.email 的 angular 源代码,您会发现一个 EMAIL_REGEXP 常量变量,其值如下:
/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[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])?)*$/;
Run Code Online (Sandbox Code Playgroud)
您也可以在后端使用它来验证输入。
Dan*_*iel 12
您可以使用电子邮件验证器模块:
var validator = require("email-validator");
validator.validate("test@email.com");
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想要任何依赖项:
var emailRegex = /^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;
function isEmailValid(email) {
if (!email)
return false;
if(email.length>254)
return false;
var valid = emailRegex.test(email);
if(!valid)
return false;
// Further checking of some things regex can't handle
var parts = email.split("@");
if(parts[0].length>64)
return false;
var domainParts = parts[1].split(".");
if(domainParts.some(function(part) { return part.length>63; }))
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
来源:
https://www.npmjs.com/package/email-validator
https://github.com/manishsaraan/email-validator/blob/master/index.js
| 归档时间: |
|
| 查看次数: |
20579 次 |
| 最近记录: |