我在router.post
中有这个代码,它将在ajax的帮助下验证我的输入表单:
if(req.body.firstname === '' || req.body.firstname !== req.body.firstname.match(/\D+/g)[0]) {
console.log('AJAX ERROR: Firstname is empty and/or have a number.');
}
else if(req.body.captcha !== req.body.captcha.match(/^kettő$/igm) ||
req.body.captcha !== req.body.captcha.match(/^ketto$/igm) ||
req.body.captcha !== req.body.captcha.match(/^two$/igm)) {
console.log('AJAX ERROR: captcha is empty and/or the entered value is invalid.');
}
else {
console.log('AJAX ERROR');
};
预期产出:
firstname
为空,则在console.log
firstname
有数字,则在console.log
captcha
不等于kettő, ketto, Kettő, Ketto, KETTŐ, KETTO, two, Two, TWO
个答案,则在console.log
else
。经验丰富的行为:
captcha
在验证console.log
后始终向firstname
投掷错误。 firstname
按预期工作。在连续多次重新请求并出现以下控制台错误后,我也遇到了严重的延迟:main-vanilla.min.js:1 POST http://127.0.0.1:3000/hu/form net::ERR_EMPTY_RESPONSE
答案 0 :(得分:1)
else if(req.body.captcha !== req.body.captcha.match(/^kettő$/igm) ||
req.body.captcha !== req.body.captcha.match(/^ketto$/igm) ||
req.body.captcha !== req.body.captcha.match(/^two$/igm)) {
console.log('AJAX ERROR: captcha is empty and/or the entered value is invalid.');
}
有一些问题:
您在[0]
.match()
之后的firstname.match()
之后错过了match()
。 &&
返回一个数组,因此您需要选择第一个元素。
现在逻辑说如果其中一个不匹配,那么抛出一个错误。你真正想要的是,如果这些都不匹配,就会抛出一个错误。您应该使用||
代替function BusinessAddAppointmentCtrl($scope, ionicDatePicker, ionicTimePicker, DatePickerService, TimePickerService) {
// Booking time and date
$scope.booking = {
'date': DatePickerService.getDate(),
'time': TimePickerService.getTime()
}
// Ionic datepicker
$scope.openDatePicker = function(val) {
ionicDatePicker.openDatePicker(DatePickerService.datePickerObject);
};
// Ionic timepicker
$scope.openTimePicker = function () {
ionicTimePicker.openTimePicker(TimePickerService.timePickerObject);
};
}
来实现这一目标。