不允许在Javascript验证中使用空格

不允许在Javascript验证中使用空格,javascript,validation,Javascript,Validation,我正在处理一个必须在提交时验证的web表单。我有一个名字字段,在验证时必须遵循两条规则,名字必须至少有3个字母,并且任何字符之间不能有空格。我已经让它在名称太短时显示错误消息,但我不知道如何不允许空白 如何验证这一点,以便使用javascript的任何字符之间都没有空格 以下是我目前的代码: <html> <head> <title>Project 5</title> </head> <b

我正在处理一个必须在提交时验证的web表单。我有一个名字字段,在验证时必须遵循两条规则,名字必须至少有3个字母,并且任何字符之间不能有空格。我已经让它在名称太短时显示错误消息,但我不知道如何不允许空白

如何验证这一点,以便使用javascript的任何字符之间都没有空格

以下是我目前的代码:

<html>
    <head>
        <title>Project 5</title>
    </head>

    <body>
        <form name="myForm" id="myForm" onsubmit="return validateForm()">
            First Name: <input type="text" id="name"> <br>
            Age: <input type="text" id="age"> <br>
            Street Address: <input type="text" id="address"> <br>
            State: <select>
                <option value="la">LA</option>
                <option value="tx">TX</option>
                <option value="ok">OK</option>
                <option value="mi">MI</option>
                <option value="az">AZ</option>
            </select> <br>
            Login Password: <input type="password" id="password"> <br>
            <input type="submit" value="Submit"> <br>
        </form>

        <script type="text/javascript">
            function validateForm() {
                return checkName();
            }

            function checkName() {
                var x = document.myForm;
                var input = x.name.value;
                if(input.length < 3) {
                    alert("Please enter a name with at least 3 letters");
                    return false;
                }
                else if(input.length >= 3) {

                }
            }

        </script>

    </body>
</html>

项目5
名字:
年龄:
街道地址:
声明: 洛杉矶 德克萨斯州 好啊 医疗保险 阿兹
登录密码:

函数validateForm(){ 返回checkName(); } 函数checkName(){ var x=document.myForm; var输入=x.name.value; 如果(输入长度<3){ 警告(“请输入至少包含3个字母的名称”); 返回false; } 否则如果(input.length>=3){ } }
对于(var i=0,len=string.length;i我建议使用正则表达式进行表单输入验证。检查以下示例:

shouldFailTooShort  = 'ts';
shouldFailSpace  = 'has space';
shouldPass  = 'no-spaces';

validationRule = /^\S{3,}$/;
validationRule.test(shouldFailTooShort) === false;
validationRule.test(shouldFailSpace) === false;
validationRule.test(shouldPass) === true;
使用正则表达式,可以在一次正则表达式检查中对一个字段执行所有验证,如上文所述。但是,为了可用性,我建议为每个验证要求使用一个规则。这样,不同的验证规则可以生成不同的消息,用户就不会因为必须阅读一条而感到困惑,并且总是使用一条规则给我留言

偷看一下

编辑: 根据评论中的要求,我在此提出部署解决方案的建议。我建议不要在生产中使用
alert
功能,而是在页面本身显示消息,例如在
span
元素中

HTML:


名字:

立即验证
JavaScript:

validateForm = function () {
    return checkName();
}

function checkName() {
    var x = document.myForm;
    var input = x.name.value;
    var errMsgHolder = document.getElementById('nameErrMsg');
    if (input.length < 3) {
        errMsgHolder.innerHTML =
            'Please enter a name with at least 3 letters';
        return false;
    } else if (!(/^\S{3,}$/.test(input))) {
        errMsgHolder.innerHTML =
            'Name cannot contain whitespace';
        return false;
    } else {
        errMsgHolder.innerHTML = '';
        return undefined;
    }
}
validateForm=函数(){
返回checkName();
}
函数checkName(){
var x=document.myForm;
var输入=x.name.value;
var errMsgHolder=document.getElementById('nameermsg');
如果(输入长度<3){
errMsgHolder.innerHTML=
'请输入至少包含3个字母的名称';
返回false;
}else if(!(/^\S{3,}$/.test(输入))){
errMsgHolder.innerHTML=
'名称不能包含空格';
返回false;
}否则{
errMsgHolder.innerHTML='';
返回未定义;
}
}

查看中的live example。

有一个选项,只需使用Javascript中的一行代码即可删除所有文本的空白

text=text.split(' ').join('');  // this will remove all the white space in your text.

您是否尝试匹配正则表达式
/\s/
(包含空格)或
/^\s+$/
(整个字符串仅包含无空格)?只需搜索空格,当您找不到任何空格时,就可以了?(当然,总是有
/^\s{3,}$/
)如果在我的代码中遇到一些问题,比如如何让它只测试一个特定的字段。我已经编辑了这个问题来显示我的代码,你介意看一下并给我一个提示,告诉我应该在哪里使用它吗?
validateForm = function () {
    return checkName();
}

function checkName() {
    var x = document.myForm;
    var input = x.name.value;
    var errMsgHolder = document.getElementById('nameErrMsg');
    if (input.length < 3) {
        errMsgHolder.innerHTML =
            'Please enter a name with at least 3 letters';
        return false;
    } else if (!(/^\S{3,}$/.test(input))) {
        errMsgHolder.innerHTML =
            'Name cannot contain whitespace';
        return false;
    } else {
        errMsgHolder.innerHTML = '';
        return undefined;
    }
}
text=text.split(' ').join('');  // this will remove all the white space in your text.