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