Javascript 如何在JS中验证我的表单?

Javascript 如何在JS中验证我的表单?,javascript,regex,validation,Javascript,Regex,Validation,我正在尝试验证表单的全名部分,要求如下: 只有字母表、单词之间的空格和“-”才有效 最少3个字符,最多35个字符 我的HTML代码如下: 功能测试(myForm) { var regex=/^[a-zA-Z]+$/; if(regex.test(myForm.full_name.value)==false){ 警告(“名称必须仅以字母表示”); myForm.full_name.focus(); 返回false; } } 全名: 尝试此正则表达式,它不允许在字符串的开头或结

我正在尝试验证表单的全名部分,要求如下:

  • 只有字母表、单词之间的空格和“-”才有效
  • 最少3个字符,最多35个字符
  • 我的HTML代码如下:

    功能测试(myForm)
    {         
    var regex=/^[a-zA-Z]+$/;
    if(regex.test(myForm.full_name.value)==false){
    警告(“名称必须仅以字母表示”);
    myForm.full_name.focus();
    返回false;
    }
    }
    
    全名:
    
    尝试此正则表达式,它不允许在字符串的开头或结尾使用空格或
    -
    字符:

    var regex = /^[a-zA-Z][a-zA-Z- ]{1,33}[a-zA-Z]$/
    

    请尝试此正则表达式,它不允许在字符串的开头或结尾使用空格或
    -
    字符:

    var regex = /^[a-zA-Z][a-zA-Z- ]{1,33}[a-zA-Z]$/
    

    这个正则表达式应该为您完成工作
    /(^[a-zA-Z-]{3,35}$)/

    说明:
    [a-zA-z-]
    --任何字符空间或
    -

    {3,35}
    ——重复3到35次

    例如:

    功能测试(名称){
    var regex=/(^[a-zA-Z-]{3,35}$)/
    return regex.test(名称)
    }
    日志(测试('valid-name'))
    console.log(测试('valid Name'))
    console.log(测试('valid'))
    console.log(测试('in'))
    console.log(测试('invalid~name'))
    
    console.log(test('invalidname invalidname invalidname invalidname')
    此正则表达式应该为您完成工作
    /(^[a-zA-Z-]{3,35}$)/

    说明:
    [a-zA-z-]
    --任何字符空间或
    -

    {3,35}
    ——重复3到35次

    例如:

    功能测试(名称){
    var regex=/(^[a-zA-Z-]{3,35}$)/
    return regex.test(名称)
    }
    日志(测试('valid-name'))
    console.log(测试('valid Name'))
    console.log(测试('valid'))
    console.log(测试('in'))
    console.log(测试('invalid~name'))
    
    log(test('invalidname invalidname invalidname invalidname')
    这将允许名称过长,因为中间字符类可以在
    {1,35}
    开始计数之前重复任意次数。相反,您应该将
    {1,35}
    移动到中间字符类,将最大重复次数更改为
    33
    ,并删除正则表达式周围不必要的括号:
    /^[a-zA-Z]+[a-zA-Z-]{1,33}[a-zA-Z]$/
    这将允许名称过长,因为中间字符类可以在
    {1,35}
    开始计数之前重复任意次数。相反,您应该将
    {1,35}
    移动到中间字符类,将最大重复次数更改为
    33
    ,并删除正则表达式周围不必要的括号:
    /^[a-zA-Z]+[a-zA-Z-]{1,33}[a-zA-Z]$/