2016-09-14 114 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(); 
    } 
}