2011-07-04 184 views
0

我正在嘗試使用jquery bassistance驗證器,它工作正常,但我需要一些幫助來添加jquery以檢查輸入的數字是否是澳大利亞數字(但我不真的很瞭解正則表達式)澳大利亞電話號碼需要幫助驗證幫助

下面是英國電話代碼:

jQuery.validator.addMethod("phoneUK",function(a,b){return this.optional(b)||a.length>9&&a.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/)},"Please specify a valid phone number"); 

下面是對英國的移動代碼:

jQuery.validator.addMethod("mobileUK",function(a,b){return this.optional(b)||a.length>9&&a.match(/^((0|\+44)7(5|6|7|8|9){1}\d{2}\s?\d{6})$/)},"Please specify a valid mobile number"); 

澳大利亞landlin電話號碼可以輸入爲0X XXXX XXXX或0XXXXXXXXX。

澳大利亞手機號碼可以輸入爲04XX XXX XXX或04XXXXXXXX。

顯然X的是數字洛爾 任何幫助,將不勝感激,我需要一個類似的代碼到phoneUK和mobileUK但是對於AU號碼.. :)

+1

以下任何一個有用:http://www.regexlib.com/Search.aspx?k=australian%20phone? –

+0

謝謝,會與那些玩:) – SoulieBaby

回答

1

正則表達式將是 /^[0-9]{10}$|^\(0[1-9]{1}\)[0-9]{8}$|^[0-9]{8}$|^[0-9]{4}[ ][0-9]{3}[ ][0-9]{3}$|^\(0[1-9]{1}\)[ ][0-9]{4}[ ][0-9]{4}$|^[0-9]{4}[ ][0-9]{4}$/

你我們想將a.length>9更改爲a.length>14,因爲像(09) 9999 9999這樣的數字是有效的數字。

因此,所有一起:

jQuery.validator.addMethod("phoneAus",function(a,b){return this.optional(b)||a.length>14&&a.match(/^[0-9]{10}$|^\(0[1-9]{1}\)[0-9]{8}$|^[0-9]{8}$|^[0-9]{4}[ ][0-9]{3}[ ][0-9]{3}$|^\(0[1-9]{1}\)[ ][0-9]{4}[ ][0-9]{4}$|^[0-9]{4}[ ][0-9]{4}$/)},"Please specify a valid mobile number"); 
2
/^[0-9]{10}$|^\(0[1-9]{1}\)[0-9]{8}$|^[0-9]{8}$|^[0-9]{4}[ ][0-9]{3}[ ][0-9]{3}$|^\(0[1-9]{1}\)[ ][0-9]{4}[ ][0-9]{4}$|^[0-9]{4}[ ][0-9]{4}$/ 

{1}是默認的,沒有必要在所有指定。

用\ d替換[0-9],使[x-y]僅在範圍縮小時使用。

[]簡化爲\ S

在發現開始,不要讓再次找到它: ^ ... $ |^... $ |^... $ |^... $簡化爲^(... | ... | ... | ...)$

/^(\d{8}(\d{2})?|\(0[1-9]\)\d{8}|\d{4}\s\d{3}\s\d{3}$|(\(0[1-9]\))?\s\d{4}\s\d{4})$/ 

即使上述簡化模式也有冗餘部分和重疊。

/^(\d{8}(\d{2})?|\d{4}\s\d{3}\s\d{3}$|(\(0[1-9]\))?\s?\d{4}\s?\d{4})$/