如何使用html模式验证澳大利亚电话号码

时间:2017-09-21 08:56:09

标签: javascript php regex html5

在PHP中,我可以使用PHP Regex轻松验证输入中的澳大利亚电话号码。

我正在使用的正则表达式是:

/^\({0,1}((0|\+61)(2|4|3|7|8)){0,1}\){0,1}(\ |-){0,1}[0-9]{2}(\ |-){0,1}[0-9]{2}(\ |-){0,1}[0-9]{1}(\ |-){0,1}[0-9]{3}$/

澳大利亚数字

    // Valid
    var phoneNumber1 = "0411 234 567";
    var phoneNumber2 = "(02) 3892 1111";
    var phoneNumber3 = "38921111";
    var phoneNumber4 = "0411234567";

    // Invalid
    var phoneNumber5 = "3892 11";
    var phoneNumber6 = "diane 0411 234 567";
    var phoneNumber7 = "bob";

我尝试使用相同的正则表达式在客户端使用HTML5 Pattern属性进行验证,但我没有得到理想的结果。

在HTML5中使用时,有人可以帮我找出上面的正则表达式有什么问题吗?如果有人可以建议模仿HTML5表单验证的javascript解决方案,我会非常感激

1 个答案:

答案 0 :(得分:0)

这只是逃离空间,不需要它。不确定为什么逃避空间是一个问题。但无论如何,这似乎有效。

您甚至会注意到我创建的无效的数据列表甚至没有出现在下拉列表中。

<form onsubmit="alert('ok'); return false;">

<input type="text" list="test" 
pattern="^\({0,1}((0|\+61)(2|4|3|7|8)){0,1}\){0,1}( |-){0,1}[0-9]{2}( |-){0,1}[0-9]{2}( |-){0,1}[0-9]{1}( |-){0,1}[0-9]{3}$">

<datalist id="test"> 
  <option value="0411 234 567">
  <option value="(02) 3892 1111">
  <option value="38921111">
  <option value="0411234567">
  <option value="3892 11">
  <option value="diane 0411 234 567">
  <option value="bob">
</datalist>

<button type="submit">Test</button>

</form>