gpt4 book ai didi

javascript - 如何使用 .every() 方法验证针对 Regex 的输入?

转载 作者:行者123 更新时间:2023-11-27 23:01:11 25 4
gpt4 key购买 nike

我有一个函数 getSum()。我有两个日期输入,我正在尝试在运行一段代码之前进行验证。我有一个 if 语句,条件是输入数组上的 .every。在执行代码之前,我需要将匹配两个输入值的函数传递给正则表达式。

我很困惑。

var sumButton = 
document.querySelector(".sumNumbers");
sumButton.addEventListener("click", getSum);

var dateRegEx = /^(19|20)\d{2}-(0\d{1}|1[0-2])-([0-
2]\d{1}|3[0-1])$/;

var removeErrorMsg =
document.querySelectorAll(".resetError");
removeErrorMsg.addEventListener("click", function()
{

document.getElementById("errorMsg").textContent =
"";
})




function getSum() {
let inputs = ['dateInput1', 'dateInput2'];
let outputs = ['result1', 'result2'];


if (inputs.every(function(){

})) {
inputs.forEach(function(input, index) {
const inputValue =
document.getElementById(input).value;

var sum = 0;
for (var i = 0; i < inputValue.length; i++) {
const num = parseInt(inputValue.charAt(i));
if (!isNaN(num)) {
sum += num;
}
}
const total = (sum - 1) % 9 + 1;


document.getElementById(outputs[index]).textContent
= "Your number is: " + total;

});
} else{
document.getElementById("errorMsg").textContent =
"*error* please enter two dates and two names"
}

//
}

最佳答案

every 方法接受一个回调,如果回调的所有返回值都是 true,则 every 返回 true,否则 every 返回 false

因此,您只需要编写一个回调函数来传递给 every,它接受 inputs 数组的单个元素并返回一个 bool 值。要针对正则表达式进行测试,我们可以使用正则表达式 test 方法,如果给定的字符串与正则表达式模式匹配,则返回 true,否则返回 false .

例如:

function dateIsValid(dateString) {
return dateRegEx.test(dateString);
}

在上下文中:

if (inputs.every(dateIsValid)) {
// ...
}

或者使用内联定义:

if (inputs.every(dateString => dateRegEx.test(dateString))) {
// ...
}

关于javascript - 如何使用 .every() 方法验证针对 Regex 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58985261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com