У меня есть функция в React, которую я использую для проверки состояния проверки формы при отправке.
Форма содержит 2 типа ввода.
Text
и Number
Однако для того, чтобы у меня был некоторый контроль над длиной чисел в поле, входная пропелла number
установлена как text
с примененной опорой maxLength
.
Теперь мне нужно проверить, что при отправке формы значения в этих входных данных действительно являются числами.
Мое состояние:
state = {
firstName: '',
lastName: '',
accountNumber: '',
sortCode1: '',
sortCode2: '',
sortCode3: ''
}
Я пытаюсь проверить это, используя следующее ....
checkValid = state => {
const rgx = new RegExp(/^[0-9]{0,9}$/)
const result = Object.keys(state).every(key => {
if (key.match(/(firstName|lastName|)/)) {
return !!state[key]
}
return rgx.test(state[key])
})
return result
}
То, что я пытаюсь добиться, это проверить, если на firstName
и lastName
убедиться, что есть значения, а затем проверить все остальные реквизиты, чтобы убедиться, что они только числа и цифры.
Кажется, я не могу заставить это работать, поскольку форма либо всегда возвращает true, либо всегда возвращает false, в зависимости от того, как я изменяю код.
Как только любое поле будет недействительным, я просто хочу вернуть false.