2016-09-14 92 views
0

我想在使用Angular JS的Visualforce页面上实现手机号码验证,但是我的头部有问题要如何编写正则表达式。ng-pattern用于手机号码验证

的要求,给我的,是相当简单:

数应为10位(我已经设定在球场上所以这一块是种拍摄已经照顾maxlength属性) 它应该从04开始(因为它是澳大利亚手机) 只允许使用数字。

我使用(在我的电话号码输入字段中的NG-图案属性)正则表达式的表达式为:

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

这工作到一定程度 - 它不允许除数字以外的其他任何内容,并且允许我输入从04开始的10位数字。但是,它也允许我输入以02,03等开头的数字....

可能是一件很简单的事情,我错过了,但我已经看过不少网站,包括这一个,并且找不到答案。

任何帮助将非常感激,因为这一个已经使我几个灰头发。

+1

检查此 - http://stackoverflow.com/a/22378975/5198430 – Disha

+0

你设置'type =“number”',对不对?将其设置为“”文本“'。 –

+0

Hi Wiktor,是的字段输入类型已被设置为“文本”。我可能应该更清楚一点。 –

回答

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}$/"; 
+0

欣赏输入的SuperComputer。我认为你的建议将部分满足我的要求,但它也需要从04开始。 在我的头撞墙后,我终于想出了以下内容。这似乎工作,并希望有用于任何其他人需要做类似的:

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(); 
    } 
}