我正在尝试使用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号..:)
答案 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");