嗨,我是 javascript 新手,我有以下功能:
function checkform() {
var theForm = document.getElementById('login_form');
var regName = /^[a-zA-Z ]+$/;
var firstname = theForm.firstname.value;
if (
(firstname == "" || theForm.firstname.value.length > 30 ) &&
(regName.test(firstName) == false)
) {
alert("That is not a valid first name!");
theForm.firstname.focus();
return false;
}
}
它的工作原理是检查数据不为空且不大于 30。我的问题是当前允许用户输入与我的正则表达式(即数字数据)不匹配的数据。我看不出逻辑上有什么问题。
谢谢
最佳答案
在你的条件语句中尝试这样做:
if ((firstname == "" || theForm.firstname.value.length > 30 ) || (regName.test(firstname) == false)) {
// ...
}
我已将“&&”(和)运算符更改为“||” (或),因为您不需要检查两个条件(空或长于 30 并且不匹配正则表达式),而只需检查其中任何一个条件(空或长于 30 或不匹配正则表达式)。
关于javascript - JavaScript 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461965/