大家好,我有一个简短的问题 我正在使用sequalize。我创建了用户模型, 具有现场电子邮件,可以验证此类电子邮件
module.exports = (sequelize, DataTypes) => sequelize.define('user', {
name: {
type: DataTypes.STRING,
},
phone: {
type: DataTypes.STRING,
},
email: {
type: DataTypes.STRING,
validate: {
isEmail: true,
},
},
});
但是有时候在我的应用程序中,我想创建不带电子邮件的用户,或者将电子邮件设置为空字符串...但是验证不允许我..在某些情况下是否可以将空字符串另存为电子邮件,但要进行其他验证????
答案 0 :(得分:2)
是的,您可以尝试创建自定义验证器:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span class="aadharInput">
<span class="inner-row">
<span class="aadhartxt">
<input class="inputs" type="text" maxlength="4" id="aadhaar2" />
</span>
</span>
</span>
<span class="aadharInput">
<span class="inner-row">
<span class="aadhartxt">
<input class="inputs" type="text" maxlength="4" id="aadhaar2" />
</span>
</span>
</span>
<span class="aadharInput">
<span class="inner-row">
<span class="aadhartxt">
<input class="inputs" type="text" maxlength="4" id="aadhaar3" />
</span>
</span>
</span>
您只需要自己的电子邮件验证程序(很容易找到-example)
validateEmail = (email) => {
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,}))$/;
return re.test(String(email).toLowerCase());
}
module.exports = (sequelize, DataTypes) => sequelize.define('user', {
name: {
type: DataTypes.STRING,
},
phone: {
type: DataTypes.STRING,
},
email: {
type: DataTypes.STRING,
validate: {
isEmailOrEmpty(val, next) {
if (!val || val === "" || validateEmail(val)) {
return next()
}
else {
return next('email is invalid')
}
}
}
}
});
-检查值是否存在!val
-检查值是否为空字符串val === ""
-使用正则表达式验证电子邮件