Javascript 使用RegExp验证本地和国际号码
我正在尝试使用RegExp来验证电话号码,此时我正在使用的只是号码检查Javascript 使用RegExp验证本地和国际号码,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试使用RegExp来验证电话号码,此时我正在使用的只是号码检查 var RE_NUMBERS = new RegExp("^[0-9+]+$"); if ($("#mobile").val().length > 0 && !RE_NUMBERS.test($("#mobile").val())) { markAsError("#mobile"); errors += "mobile can only contain numbers\n";} 这是可
var RE_NUMBERS = new RegExp("^[0-9+]+$");
if ($("#mobile").val().length > 0 && !RE_NUMBERS.test($("#mobile").val())) {
markAsError("#mobile");
errors += "mobile can only contain numbers\n";}
这是可行的,但并不理想,因为有些用户没有添加正确的格式
我需要验证的是:
如果号码以04开头,则可以(澳大利亚手机号码)
如果不是以04开头,则应采用国际格式,并以“+”开头
因此,基本上,如果数字不是:
04xx xxx xxx
或
+xxx xxx xxx xxxx
^(04\d{8})|(\+\d{12})$
你可以试一试
RegExp("^(\\+|04)[0-9]+$");
这是正确的用法。类似于
/^(04 | \+)\d+/
^(04\d{8}){124;(\+\ d{12})$你可以试试。@Chris-对我来说似乎是个不错的答案,为什么不发布它呢?因为我没有考试。现在我发布它。为了使它一致,您应该在验证之前删除所有空白。这是只检查数字还是只检查字符数?如果我不想将国际编号的字符数限制为12,该怎么办?检查head(“04”或“+”),字符数和字符数,如果你不想限制字符数,只需使用“\d+”而不是“\d{12}”,这段代码似乎不起作用,你确定你的意思是(而不是[var RE_NUMBERS=new RegExp(^(04\d{8})|(\+\d{12})$”);您能给我一些使我的regexp无法工作的测试字符串吗?