Javascript 使用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";} 这是可

我正在尝试使用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";}
这是可行的,但并不理想,因为有些用户没有添加正确的格式

我需要验证的是:

如果号码以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无法工作的测试字符串吗?