Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Javascript验证(澳大利亚)电话号码_Javascript_Regex_Forms_Validation - Fatal编程技术网

用Javascript验证(澳大利亚)电话号码

用Javascript验证(澳大利亚)电话号码,javascript,regex,forms,validation,Javascript,Regex,Forms,Validation,我需要用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["f

我需要用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>

函数validateForm(){
var x=document.forms[“form3”][“name”].value;
如果(x==null | | x==“”){
警告(“必须填写姓名”);
返回false;
}
var s=document.forms[“form3”][“phone”].value;
如果(s==null | | s==“”){
提醒(“请输入您的电话或手机号码-最好是电话号码”);
返回false;
}
var s=document.forms[“form3”][“email”].value;
如果(s==null | | s==“”){
警报(“请输入有效的电子邮件地址”);
返回false;
}
var k=document.forms[“form3”][“email”].value;
var atpos=k.indexOf(“@”);
var dotpos=k.lastIndexOf(“.”);

if(atpos查看Javascript和RegExp方法


这里有一个正则表达式,我要推荐

var pattern = /^0[0-8]\d{8}$/g;
所以输入必须以0开头,后面跟一个数字,并且必须是介于0-8之间的数字。然后必须有8个以上的数字

有效电话号码示例:

0010293999(正常)

0110293999(正常)

0210293999(正常)

0910293999(无)

//实施

 ........
 var phoneNumber =document.forms["form3"]["phone"].value;
 var phonePattern = /^0[0-8]\d{8}$/g;
 //phone number is not valid. Please notice that you don't need to check if it's empty or null since Regex checks it for you anyways
 if (!phoneNumber.test(phonePattern))
   {
   alert("Please Enter your Phone or Mobile Number - Preferably Phone Number");
   return false;
   }
 ..........
----编辑


您还可以使用所需的模式

我以前从未使用过,但它看起来是这样的:

<input type="text" 
  id="phoneNumber"
  title="Phone numbers must be 10 digits and start with 0." 
  required pattern="0[::digit::]{10}"
/>

// It's late, no idea if that's a valid regex or if works with POSIX.

//很晚了,不知道这是不是一个有效的正则表达式,也不知道它是否适用于POSIX。
有关更多信息,请参阅这篇html5rocks文章: 为此感谢(php不是js,但正则表达式应该翻译):


Nah不起作用。只是添加了您的代码,但它发送web消息时没有验证所有字段。我以为您是在询问有关phonenumber的regex?很抱歉,示例代码中有一个小错误。它必须是!phonePattern.test(phonenumber)而不是!phonenumber.test(phonePattern)现在一切都好了。谢谢你。很抱歉,我无法投票支持你,因为我还没有15个声誉。我以后会这么做。再次感谢。根据OP问题,提供的一些模式与澳大利亚电话号码不匹配。例如,从05开始的号码对澳大利亚无效。谢谢。这一个像cha一样工作rm。问题是电话字段的错误消息与其他JavaScript错误消息不同……不,仔细想想,这条消息在通过IE浏览器填写表单时不起作用。
required pattern=
。这只是两个属性,
pattern=
required
。请注意无法依赖客户端数据(甚至客户端验证数据)@kaᵠ 最好同时进行客户端验证和服务器端验证,因为如果客户端验证失败,它将不会提交,这可能会节省一些HTTP请求。@EnglishMaster,并与(正版)一样改善用户体验用户希望随时知道任何错误,而不是在网站花时间处理页面并返回结果之后。
........
     var phoneNumber =document.forms["form3"]["phone"].value;
     var phonePattern = /^0[0-8]\d{8}$/g;
     //phone number is not valid. Please notice that you don't need to check if it's empty or null since Regex checks it for you anyways
     if (!phonePattern.test(phoneNumber))
       {
       alert("Please Enter your Phone or Mobile Number - Preferably Phone Number");
       return false;
       }
     ..........
<input type="text" 
  id="phoneNumber"
  title="Phone numbers must be 10 digits and start with 0." 
  required pattern="0[::digit::]{10}"
/>

// It's late, no idea if that's a valid regex or if works with POSIX.
<?php
function validate_phone($number) {
  $number = preg_replace('/[^\d]/', '', $number);
  return preg_match('/^(0(2|3|4|7|8))?\d{8}$/', $number)
    || preg_match('/^1(3|8)00\d{6}$/', $number)
    || preg_match('/^13\d{4}$/', $number);
}