我正在尝试创建一个函数来检查字段是否为空,仅包含字母和空格。验证该字段仅包含字母和空格似乎不起作用,因为放在该字段中的任何内容都将返回警报消息。
我想说:
如果名称字段不是字母和空格,则显示此警告“...”。否则返回true。
function validateForm() {
var x = document.forms["newsletterForm"]["name"].value;
if (x==null || x=="") {
alert("Name must not be blank");
return false;
}
else if (x!==/^[A-Za-z ]+$/) {
alert("Name contains invalid characters (letters and spaces only!)")
return false;
}
else {
return true;
}
<form name="newsletterForm" action="#" onsubmit="return validateForm()" method="post">
<label for="name">Name*: </label><br>
<input type="text" name="name" placeholder="Fill in your name"1> <br><br>
<label for="email">E-mail*: </label><br>
<input type="text" name="email" placeholder="Fill in your e-mail address"><br><br>
<label for="comments">Comments (optional): </label> <br>
<textarea rows="5" cols="20" name="comments" placeholder="Leave us a message"></textarea><br>
<input type="submit" value="Submit">
</form>
答案 0 :(得分:0)
在z
结束时遗失}
,script
遗失;
并使用else if
进行检查regex
only letter and space
&#13;
function validateForm() {
var regex = new RegExp("^[a-zA-Z ]+$");
var x = document.forms["newsletterForm"]["name"].value;
if (x == null || x == "") {
alert("Name must not be blank");
return false;
} else if (!regex.test(x)) {
alert("Name contains invalid characters (letters and spaces only!)");
return false;
} else {
return true;
}
}
&#13;
答案 1 :(得分:0)
您好可以使用正则表达式
var regexExp = /^[a-zA-Z\s]*$/;
function validateForm() {
var x = document.forms["newsletterForm"]["name"].value;
alert(x)
if (x==null || x=="") {
alert("Name must not be blank");
return false;
}
else if (!regexExp.test(x)) {
alert("Name contains invalid characters (letters and spaces only!)")
return false;
}
}
&#13;
<form name="newsletterForm" action="#" onsubmit="return validateForm()" method="post">
<label for="name">Name*: </label><br>
<input type="text" name="name" placeholder="Fill in your name"1> <br><br>
<label for="email">E-mail*: </label><br>
<input type="text" name="email" placeholder="Fill in your e-mail address"><br><br>
<label for="comments">Comments (optional): </label> <br>
<textarea rows="5" cols="20" name="comments" placeholder="Leave us a message"></textarea><br>
<input type="submit" value="Submit">
</form>
&#13;
答案 2 :(得分:0)
使用typeof
试
if(x == null || typeof x !== 'string')
{
//code here
}
空字符串不是要检查的有效值。
答案 3 :(得分:0)
我认为问题在于您使用!==
。 !==
将寻找x
与正则表达式对象之间的绝对匹配 - 也就是说,正则表达式对象是x
;不是匹配那个表达式。
这个怎么样:
else if (! /^[A-Za-z ]+$/.test(x))