【发布时间】:2013-03-13 19:31:25
【问题描述】:
我需要在 JavaScript 中验证澳大利亚的电话号码(例如 02[3-9]\d{7} 或 07[3-9]\d{7} 或 04[\d]{8})。
要求:
- 必须是 10 位数字
- 没有逗号
- 没有破折号
- 前面没有+
- 必须以 0 开头
目前我可以验证必填字段和电子邮件地址,但我想添加电话号码验证。
<html>
<head>
<script type="text/javascript">
function validateForm() {
var x=document.forms["form3"]["name"].value;
if (x==null || x=="") {
alert("Name must be filled out");
return false;
}
var s=document.forms["form3"]["phone"].value;
if (s==null || s=="") {
alert("Please Enter your Phone or Mobile Number - Preferably Phone Number");
return false;
}
var s=document.forms["form3"]["email"].value;
if (s==null || s=="") {
alert("Please Enter a valid email address");
return false;
}
var k=document.forms["form3"]["email"].value;
var atpos=k.indexOf("@");
var dotpos=k.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=k.length) {
alert("Email Address is Not Valid. Please provide your correct email address.");
return false;
}
}
</script>
</head>
<body>
<form action="/thank-you.php" name="form3" method="post" onsubmit="return validateForm();" >
Your name* <input type="text" name="name" />
Phone number* <input type="text" name="phone" />
Email* <input type="text" name="email" />
<input type="submit" value="sumbit" name="submit" class="button" onclick="javascript:return validateMyForm();" /><input type="reset" value="Reset" class="resetbutton" />
</form>
</body>
</html>
有人可以帮忙吗?
【问题讨论】:
-
请注意,您不能依赖客户端数据(甚至不能依赖客户端验证数据)
-
@kaᵠ 最好有客户端验证和服务器端验证,因为如果客户端验证失败,它就不会提交,这可能会节省一些 HTTP 请求。
-
@EnglishMaster 并改善用户体验,因为(真正的)用户更愿意立即知道任何错误,而不是在网站花时间处理页面并返回结果之后。
标签: javascript regex forms validation