2011-07-04 216 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})$/