澳大利亚手机号码正则表达式验证需要在号码之间留有空格

she*_*nan 3 javascript regex angularjs angularjs-ng-pattern

我需要验证手机号码

  • 以 04 开头的第一个文本输入
  • 应该是总共 10 位数字,包括 04(例如:0412345678)

我的输入字段在下面

<form name="uploadForm">
<input type="tel" name="MobileNumber" id="MobileNumber" data-ng-model="ApplicationData.MobileNumber" required maxlength="14" data-ng-pattern="/^(0?4[0-9]{8}/\s)$/">
<span data-ng-show="uploadForm.MobileNumber.$error.pattern">Please enter a valid mobile number.</span>

<input type="tel" name="Number" id="Number" data-ng-model="ApplicationData.Number" required maxlength="14" data-ng-pattern="/(^1300\d{6}$)|(^1800\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^04\d{2,3}\d{6}$)/">

<span data-ng-show="uploadForm.Number.$error.pattern">Please enter a valid mobile number.</span>

</form>
Run Code Online (Sandbox Code Playgroud)

有谁可以帮帮我吗?

Tej*_*nan 6

如果我理解正确的话,这就是你的正则表达式模式。

^04[0-9]{8}$

^04- 以 04 开头
[0-9]{8}- 匹配接下来的 8 位数字
$- 匹配字符串结尾


she*_*nan 5

我认为你的第一个问题用这个正则表达式替换。它接受数字之间的空格。

ng-pattern="/^04(\s?[0-9]{2}\s?)([0-9]{3}\s?[0-9]{3}|[0-9]{2}\s?[0-9]{2}\s?[0-9]{2})$/"
Run Code Online (Sandbox Code Playgroud)

对于你的第二个问题,它很长,这是我此刻能想出的。

ng-pattern="/(^1300\s?([0-9]{3}\s?[0-9]{3}|[0-9]{2}\s?[0-9]{2}\s?[0-9]{2})$)|(^1800\s?([0-9]{3}\s?[0-9]{3}|[0-9]{2}\s?[0-9]{2}\s?[0-9]{2})$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^04(\s?[0-9]{2}\s?)([0-9]{3}\s?[0-9]{3}|[0-9]{2}\s?[0-9]{2}\s?[0-9]{2})$)/"
Run Code Online (Sandbox Code Playgroud)

任何机构都有兴趣修改/缩短这个。