2016-05-01 44 views
-2

對於這第一驗證我嘗試驗證的4位數字的輸入,然而,當我嘗試運行它並輸入4個位數的誤差仍顯示:我應該使用什麼正則表達式來驗證數字模式?

function pCodeValidate() { 
    var pCode = document.getElementById("postcode"); 
    var pCodePattern = /^\d{4}$/; 
    if (!(pCodePattern.test(pCode))){ 
     errorList("post code must be 4 digits") 
    } 
    //return 
} 

第二個驗證移動號碼與所述圖案「04dddddddd,其中d是一個數字」。這是我的代碼:

function mNumberValidate() { 
    var mNumber = document.getElementById("mobilenumber"); 
    var mNumberPattern = /^\d{10}$/; 
    if (!(mNumberPattern.test(mNumber))){ 
     errorList("invalid mobile number"); 
    } 
    //return 
} 

對於第二部分,我應該使用哪種正則表達式來強制「04」作爲輸入中的第一個值?

+0

'/^04 \ d {8} $ /;'? –

+0

@zb只是爲了我自己的知識,你可以向我解釋如何解釋該正則表達式? – nanjero05

+0

@timolawl是的,真的 –

回答

2

您的第一個函數的問題是,您沒有使用正則表達式來測試的值的輸入,您正試圖測試對輸入本身的引用。更改以下行:

var pCode = document.getElementById("postcode"); 

來獲取值:

var pCode = document.getElementById("postcode").value; 

在你的第二個功能,你也有同樣的問題,這你解決同樣的方式:

var mNumber = document.getElementById("mobilenumber").value; 
// --------------------------------- add this part >-^^^^^^ 

那麼你需要一個電話號碼的正則表達式,從04開始如下:

/^04\d{8}$/ 

即:

^  - beginning of string 
04 - the literal characters "04" 
\d{8} - any 8 digits 
$  - end of string 

(狡猾的演示:https://jsfiddle.net/xah6qstz/

+0

非常感謝你的明確解釋。這解決了它 – nanjero05