好的,我需要基本实现五件事情 - 使用JS而不是jQuery。我在这里尝试了几个RegExp代码,但都没有为我工作。让我先从第一个问题(1号):Javascript:减少输入字段表单验证的空间
- 在“username”的输入字段删除多余的空间(允许即只有空间是姓和名之间)
function removeSpaces(str){
\t \t return str.replace(/^\s+/,"").replace(/\s+$/,"").replace(/\s+/g," ");
}
<html>
<body>
<form action="" method="post" name="myform" onsubmit="removeSpaces(this)">
\t \t \t \t \t \t \t <div id="nameDiv">
\t \t \t \t \t \t \t \t \t \t \t <label for="user_login">User login</label>
\t \t \t \t \t \t \t \t \t \t \t <input id="userName" type="text" name="user_login" value=""> \t
\t \t \t \t \t \t \t </div>
<div id="submitButton"> \t
\t \t \t \t \t \t \t \t \t \t \t <input type="submit" value="Submit" name="" onclick="validateForm(), removeSpaces(), firstLetterCaps()">
\t \t \t \t \t \t \t </div>
</body>
</html>
- 用户必须输入至少两个名字,即第一个和最后名字
- 大写˚F每个名称的第一个字母(点击提交按钮时应该发生)
- 计算注释中用户类型的行数 - 如果行数小于10,则指示符(非文本)为绿色,否则为红色。
- 应显示适当的隐藏errorMessage div,而不是警报JS窗口。例如:当用户没有输入名称并点击提交时,errorMessageName div应该出现。
对于1号,我试过,但它不工作:
<html>
<head>
\t <title></title>
\t <script type="text/javascript">
\t \t function removeSpaces(nameInput){
\t \t var nameInput = document.getElementById("userName").value;
\t \t return nameInput.replace(/ +(?=)/g,'');
}
\t </script>
</head>
<body>
\t <div id="nameDiv" style="border: 1px solid red; text-align: center;">
\t \t <label for="user_login">User login</label>
\t \t <input id="userName" type="text" name="" value="" required="" onblur="capitalizeFirstLetter(); removeSpaces()">
\t </div>
</body>
</html>
任何帮助就这将是非常感谢!
你是什么意思'在 “username” 的删除多余的空格一切'?如果用户输入5个字怎么办? –
我可以给你一些简单的正则表达式来用于1)和2),但是你需要考虑规范化人名是否真的是你想要的。它应该如何处理“Pedro da Silva”(其姓氏不是首字母大写)或“Jean Michel Dar”(带有两个单词的名字)或“John O'Reilly”(带有另一个非标准大写字母)或在哪里姓氏是第一位的。 –
你这样做都是错误的。这是复杂的验证,不能很好地处理复杂的名称,如:Edvin van der Sar等。此外,它的多种事情不是一个简单的问题。将名字拆分成2或3个部分(姓名中间名)。不要大写任何东西,只要在1个或更多名字以小写字母开头的情况下警告用户。在名称之前修饰空格,但不限制有多少单词,有些人的姓氏多于一个或多个名字。 – DanteTheSmith