我已经测试了两个表达式,并且它们都起作用。现在,遍历所有代码和附件时,我发现邮政编码的正则表达式不起作用。 (一个用于电子邮件地址的地址确实可以。我尝试了一些错误测试,但似乎找不到它为什么不起作用。我已经附上了正则表达式应该从中获取输入信息的表单数据。提交表单时,似乎我们的邮政编码格式分别为字母,数字,字母(然后是可选的空格或破折号),然后是数字,字母,数字。
<table border="1">
<tr>
<td>
First Name:<input name="fname" required="required" type="text"/><br />
Last Name:<input name="lname" required="required" type="text" /><br />
E-mail address:<input name="email" required="required" input type= "text"/><br />
Postal Code:<input name="postal" required="required" type="text"/><br />
<input type="submit" value="Join our Mailing List" onclick="return validate(this.form);"></input>
</td>
</tr>
</table>
有什么建议吗?
<script>
var validate = function(myform){
var postal = myform.postal;
var regex = /^([A-Za-z]\d[A-Za-z] -?\d[A-Za-z])\d$/i;
if (!regex.test(postal.value))
{
alert("invalid postal code format");
return false;
}
return confirm("continue?");
}
</script>
<script>
var validate = function(myform){
var myemail = myform.email;
var regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i;
if (!regex.test(myemail.value))
{
alert("invalid email format");
return false;
}
return confirm("continue?");
}
</script>
答案 0 :(得分:1)
您的问题来自validate
函数的重复定义。
<form>
<table border="1">
<tr>
<td>
First Name:<input name="fname" required="required" type="text"/><br />
Last Name:<input name="lname" required="required" type="text" /><br />
E-mail address:<input name="email" required="required" input type= "text"/><br />
Postal Code:<input name="postal" required="required" type="text"/><br />
<input type="submit" value="Join our Mailing List" onclick="return validate(this.form);"></input>
</td>
</tr>
</table>
</form>
<script>
var validate = function(myform) {
var postal = myform.postal;
var regex = /^([A-Za-z]\d[A-Za-z] -?\d[A-Za-z])\d$/i;
if (!regex.test(postal.value)) {
alert("invalid postal code format");
return false;
}
var myemail = myform.email;
var regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i;
if (!regex.test(myemail.value)) {
alert("invalid email format");
return false;
}
return confirm("continue?");
}
</script>
答案 1 :(得分:0)
您将用于验证表单的函数存储在变量validate
中。您将两个不同的函数分配给该变量。一个用于检查邮政编码,另一个用于检查电子邮件地址。
分配第二个功能将覆盖第一个功能的引用。因此,将仅执行电子邮件地址检查。在同一功能中包含两个检查。