澳大利亚电话号码所需的低音验证帮助

时间:2011-07-04 23:58:23

标签: jquery validation

我正在尝试使用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");

澳大利亚固定电话号码可以输入为0X XXXX XXXX或0XXXXXXXXX。

澳大利亚手机号码可以输入为04XX XXX XXX或04XXXXXXXX。

显然X是数字lol 任何帮助将不胜感激,我需要一个类似于phoneUK和mobileUK的代码,但对于AU号..:)

2 个答案:

答案 0 :(得分: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}是默认值,无需指定它。

将[0-9]替换为\ d,以便仅在范围缩小时使用[x-y]。

[]简化为\ s

找到了开始,不要再继续找到它: ^ ... $ | ^ ... $ | ^ ... $ | ^ ... $ simpleies to ^(... | ... | ... | ...)$

/^(\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})$/

答案 1 :(得分: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");