Javascript:减少输入字段表单验证中的空格

Javascript:减少输入字段表单验证中的空格,javascript,html,regex,Javascript,Html,Regex,好的,我需要基本上实现五件事——使用JS而不是jQuery。我在这里尝试了几个RegExp代码,但没有一个对我有效。让我从第一个问题(第一个问题)开始: 删除“用户名”输入字段中多余的空格(即,只有名字和姓氏之间才允许有空格) 函数移除空间(str){ 返回str.replace(/^\s+/,“”)。replace(/\s+$/,“”)。replace(/\s+/g,“”); } 用户登录 试试这个: 用户登录 试试这个: 用户登录 submit(元素)上的函数{ errorEl

好的,我需要基本上实现五件事——使用JS而不是jQuery。我在这里尝试了几个RegExp代码,但没有一个对我有效。让我从第一个问题(第一个问题)开始:

  • 删除“用户名”输入字段中多余的空格(即,只有名字和姓氏之间才允许有空格)
  • 函数移除空间(str){
    返回str.replace(/^\s+/,“”)。replace(/\s+$/,“”)。replace(/\s+/g,“”);
    }
    
    用户登录
    
    试试这个:

    
    用户登录
    
    试试这个:

    
    用户登录
    
    submit(元素)上的函数{ errorElement=document.getElementById(“错误”); errorElement.innerHTML=“”; elements=element.querySelectorAll(“标签>输入,标签>文本区域”); words=elements[0]。value.match(/\S+/g)| |[]; 如果(字数长度<2){ document.getElementById(“错误”).innerHTML+=“
    名称必须至少为2个单词。” 返回false; } words=words.map(函数(word){ 返回字[0].toUpperCase()+字.substr(1); }); 元素[0]。值=words.join(“”); } 函数onUpdate(元素){ }
    div#错误{
    颜色:红色;
    }
    
    名称:


    评论:


    submit(元素)上的函数{ errorElement=document.getElementById(“错误”); errorElement.innerHTML=“”; elements=element.querySelectorAll(“标签>输入,标签>文本区域”); words=elements[0]。value.match(/\S+/g)| |[]; 如果(字数长度<2){ document.getElementById(“错误”).innerHTML+=“
    名称必须至少为2个单词。” 返回false; } words=words.map(函数(word){ 返回字[0].toUpperCase()+字.substr(1); }); 元素[0]。值=words.join(“”); } 函数onUpdate(元素){ }
    div#错误{
    颜色:红色;
    }
    
    名称:


    评论:



    删除“用户名”中多余的空格是什么意思?如果用户输入5个单词,我可以给你一些简单的正则表达式(1)和2),但是你需要考虑正常化人名是否真的是你想要的。它应该如何处理“Pedro da Silva”(其姓氏不是首字母大写)或“Jean-Michel Dar”(名字由两个单词组成)或“John O'Reilly”(另一个非标准大写)或姓氏的首字母。你完全错了。这是一个复杂的验证,不能很好地处理复杂的名称,比如:Edvin van der Sar等。此外,它的多个方面并不是一个简单的问题。将姓名分成2或3部分(姓名中间名姓氏)。不要大写任何内容,只要在1个或多个名称以小写字母开头时警告用户即可。在名字之前和之后删去空格,但不要限制单词的数量,有些人的姓氏比一个或多个名字多。@YossiVainshtein我的意思是带空格的名字必须转换为相同的名字,但不带空格。例如,点击提交按钮时,“John Digil”应该变成->“John Digil”。您所说的
    删除“用户名”
    中多余的空格是什么意思?如果用户输入5个单词,我可以给你一些简单的正则表达式(1)和2),但是你需要考虑正常化人名是否真的是你想要的。它应该如何处理“Pedro da Silva”(其姓氏不是首字母大写)或“Jean-Michel Dar”(名字由两个单词组成)或“John O'Reilly”(另一个非标准大写)或姓氏的首字母。你完全错了。这是一个复杂的验证,不能很好地处理复杂的名称,比如:Edvin van der Sar等。此外,它的多个方面并不是一个简单的问题。将姓名分成2或3部分(姓名中间名姓氏)。不要大写任何内容,只要在1个或多个名称以小写字母开头时警告用户即可。在名字之前和之后删去空格,但不要限制单词的数量,有些人的姓氏比一个或多个名字多。@YossiVainshtein我的意思是带空格的名字必须转换为相同的名字,但不带空格。例如,点击提交按钮时,“John Digil”应该变成->“John Digil”。感谢您的输入,但肯定有更简单的JS代码。这看起来很复杂。也许吧,但它很健壮,不会倒塌,而且可读!感谢您的输入,但肯定有一个更简单的JS代码。这看起来很复杂。也许吧,但它很健壮,不会倒塌,而且可读!