ng-pattern用于手机号码验证

时间:2016-09-14 09:11:53

标签: angularjs regex ng-pattern

我正在尝试使用Angular JS在Visualforce页面上实现手机号码验证,但是我在解决如何编写正则表达式方面遇到了问题。

给我的要求非常简单:

这个数字应该是10位数(我已经在字段上设置了maxlength属性,所以这个已经处理好了) 它应该从04开始(因为它是澳大利亚手机) 只允许使用数字。

我正在使用的正则表达式(在我的电话号码输入字段的ng-pattern属性中)是:

^ /(04)[0-9] {10} / $

这可以解决问题 - 除了数字之外它不允许任何其他内容,让我输入从04开始的10位数字。但是它也允许我输入以02,03等开头的数字。 ..

我可能很简单,但我已经看过很多网站,包括这个网站,但找不到答案。

任何帮助都会非常感激,因为这个问题已经给我带来了一些白发。

2 个答案:

答案 0 :(得分:1)

尝试使用此模式

在你的HTML文件中使用它:

<input type="text" (keypress)="keyPress($event)" minlength=10 maxlength=10>

在你的JS文件中使用它:

keyPress(event: any) {
    const pattern = /[0-9\+\-\ ]/;
    let inputChar = String.fromCharCode(event.charCode);
    if (event.keyCode != 8 && !pattern.test(inputChar)) {
    event.preventDefault();
    }
}

答案 1 :(得分:0)

试试这个:

手机号码:

//inside view:
<input type="text" class="form-control" ng-model="mobileNo" name="mobileNo" ng-pattern="regEx" />

//inside controller:
$scope.regEx="/^[0-9]{10,10}$/";