javascript - JavaScript 中的正则表达式

标签 javascript html boolean logic boolean-logic

嗨,我是 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/

相关文章:

javascript - 避免不需要的表单提交

javascript - 我可以在 javascript 中创建下雨效果吗?

java - 从 float 转换为 double

javascript - 我有两个功能,当我运行程序时,似乎只有按钮点击计数器功能在运行。他们都单独工作

php - 在本地计算机之间移动 WP 站点后出现警告

javascript - 通过切换文件覆盖JS函数

html - 居中和底部对齐 flex 元素

C While 循环 - 检查函数

javascript - boolean 代数 - 如何化简

javascript - 如何将关联数组从 PHP 传递到 HTML 以进行进一步处理