如何在 sequelize.js 字段 validation.isIn.args 中编写正则表达式
How to write regex in a sequelize.js field validation.isIn.args
我在 isIn.args 中写了两个正则表达式,我希望 phone
验证器可以检查我的输入值是其中之一,但失败了。
var ValidateMe = sequelize.define('Foo', {
phone: {
type: Sequelize.STRING(20),
validate: {
isIn: {
args: [[
// moible number of china
/^(13|14|15|17|18)\d{9}$/i,
// telphone number of china
/^((\(\d{2,3}\))|(\d{3}\-)|(\d{3}))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
]],
msg: "moible or telphone number format error!"
}
}
}
})
我想要得到结果:
var inputNumber = '15208282123'; // or '8008123'
( /^(13|14|15|17|18)\d{9}$/i.test(inputNumber)
|| /^((\(\d{2,3}\))|(\d{3}\-)|(\d{3}))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(inputNumber)
) === true;
运行 它在浏览器控制台中,结果是 true
.
sequelize "isIn" 验证器不提供正则表达式支持,它检查天气值是否直接出现在参数列表中,相反 "is" 验证器支持正则表达式,但我不认为它将一次支持多个正则表达式,您需要将 2 个正则表达式转换为 1 个或创建自定义验证器来检查正则表达式和 return 如果其中一个通过则为真,如下所示
var ValidateMe = sequelize.define('Foo', {
phone: {
type: Sequelize.STRING(20),
validate: {
validatePhone: function(value) {
if(!/^(13|14|15|17|18)\d{9}$/i.test(value) && !/^((\(\d{2,3}\))|(\d{3}\-)|(\d{3}))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value)) {
throw new Error('phone format error!')
}
}
}
}
})
我在 isIn.args 中写了两个正则表达式,我希望 phone
验证器可以检查我的输入值是其中之一,但失败了。
var ValidateMe = sequelize.define('Foo', {
phone: {
type: Sequelize.STRING(20),
validate: {
isIn: {
args: [[
// moible number of china
/^(13|14|15|17|18)\d{9}$/i,
// telphone number of china
/^((\(\d{2,3}\))|(\d{3}\-)|(\d{3}))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
]],
msg: "moible or telphone number format error!"
}
}
}
})
我想要得到结果:
var inputNumber = '15208282123'; // or '8008123'
( /^(13|14|15|17|18)\d{9}$/i.test(inputNumber)
|| /^((\(\d{2,3}\))|(\d{3}\-)|(\d{3}))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(inputNumber)
) === true;
运行 它在浏览器控制台中,结果是 true
.
sequelize "isIn" 验证器不提供正则表达式支持,它检查天气值是否直接出现在参数列表中,相反 "is" 验证器支持正则表达式,但我不认为它将一次支持多个正则表达式,您需要将 2 个正则表达式转换为 1 个或创建自定义验证器来检查正则表达式和 return 如果其中一个通过则为真,如下所示
var ValidateMe = sequelize.define('Foo', {
phone: {
type: Sequelize.STRING(20),
validate: {
validatePhone: function(value) {
if(!/^(13|14|15|17|18)\d{9}$/i.test(value) && !/^((\(\d{2,3}\))|(\d{3}\-)|(\d{3}))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value)) {
throw new Error('phone format error!')
}
}
}
}
})