我想在正则表达式的帮助下验证表单中的两个文本字段,但在循环字段值时,我在regex匹配上遇到了一个错误-在表单提交时,我遇到了一条错误:"未捕获的类型错误:elem.match不是一个函数;。
我想使用日期格式dd.mm.yyyy,并且我需要使用文本字段,不能使用日期字段。
HTML:
<form method="post" onsubmit="checkForm(); return false;" action="#">
<input type="text" id="jform0" name="jform0" value="12.12.2020" class="calendar_date">
<input type="text" id="jform1" name="jform1" value="12.12.2020" class="calendar_date">
<input type="submit" value="Posodobi">
</form>
Javascript:
function checkForm() {
// regular expression to match required date format
re = /^d{1,2}.d{1,2}.d{4}$/;
document.querySelectorAll(".calendar_date").forEach((elem) => {
if (elem.value != "" && !elem.match(re)) {
alert("Invalid date format: " + elem.value);
elem.focus();
return false;
}
});
alert("All input fields have been validated!");
return true;
}
示例:https://jsfiddle.net/esedic/4gtn1hw3/13/
知道为什么不起作用吗?
使用elem.value.match(...)
而非elem.match(...)