0
我在寫一個驗證表單的函數。我正在使用every
方法來確保所有條件都已通過。如果該字段無效,則返回虛假值並將其名稱推送至invalidFields
陣列。如果一切順利的話,該函數返回true
:如何防止重複下面的.push()操作?
validateForm() {
this.isValid = this.validatingFields.every(field => {
const pattern = field.validation.pattern
const match = field.validation.match
if (match) {
const matchRegex = this.convertToRegex(match)
if (!matchRegex.test(field.value)) this.invalidFields.push(field.name)
return matchRegex.test(field.value)
}
if (pattern) {
if (pattern.test(field.value)) this.invalidFields.push(field.name)
return pattern.test(field.value)
}
return true
})
}
但正如你可以看到我有if語句做this.invalidFields.push(field.name)
在每一個。有沒有辦法避免這種重複?
編輯:輸入如下:
validatingFields: [{
name: 'name',
type: 'text',
value: '',
validation: {
required: true
}
}, {
name: 'company',
type: 'text',
value: '',
validation: {
// pattern: util.regex().email
match: 'name'
// minLength: 2,
// maxLength: 4
}