2014-07-12 53 views
0

我嘗試用JS的正則表達式來驗證我的網站上用戶的電話號碼的格式,我用這個模式XXX -XXXXXX和(XXX代表「022 '我的城市),但是當我使用XXXX -XXXXXX格式對它進行測試時,它仍被視爲相同,這裏究竟發生了什麼?檢查返回true時,字符串甚至不匹配(正則表達式)

*當用戶類型,讓說, -XXXXXX,下面的方法接受它作爲一個真正的,EHH ?? !!#@ $

var pattern= /\d{3}-\d{6}/; // this is the phone pattern 


    // below is method for checking 
    function periksaTelp(that) { 
     if (pattern.test(that.value)) { 
      document.write("Phone format is accepted !"); 
     }   
     else { 
      document.write("Non valid Phone format !"); 
     } 
    } 

感謝。

回答

1

將開始和結束模式添加到您的正則表達式中。所以它會像,

/^\d{3}-\d{6}$/ 

爲了驗證的目的,它會更好,如果你添加開始和結束模式。以上正則表示電話號碼必須在-之前有三位數字,在-之後必須有6位數字。

例如:

如果給定的電話號碼是0222-989898,那麼這個正則表達式匹配\d{3}-\d{6}222-989898,所以它返回true。但是如果我們把開始和結束模式,^\d{3}-\d{6}$它告訴正則表達式引擎必須在-之前3位數字和-之後6位數字。在你的情況下,它是-之前的四位數,所以它會失敗。

+0

謝謝Raj,這是工作,但我很困惑,不「^」意味着否定? –

+0

@Fev通常'^'表示行的開始。但是在字符類'[^]'中,只有在胡蘿蔔符號位於char類的開頭時才意味着否定。 –

+0

@Raj,好,我明白了,很好的解釋.. –

相關問題