【问题标题】:using RegExp to validate local and international numbers使用 RegExp 验证本地和国际号码
【发布时间】:2013-12-11 14:00:55
【问题描述】:

我正在尝试使用 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 或者 +XX xxx xxx xxxx

【问题讨论】:

  • 类似/^(04|\+)\d+/
  • ^(04\d{8})|(\+\d{12})$ 你可以试试。
  • @Chris - 对我来说似乎是一个很好的答案,为什么不发布呢?
  • 因为我没有测试。现在我发布它。
  • 为了保持一致,您应该在验证之前删除所有空格。

标签: javascript jquery regex


【解决方案1】:
^(04\d{8})|(\+\d{12})$ 

你可以试试看。

【讨论】:

  • 是只检查数字还是只检查字符数?如果我不想将国际号码的字符限制为 12 个怎么办?
  • 检查head("04"or"+"),字符数和个数,如果不想限制字符数,用"\d+"代替"\ d{12}"
  • 这段代码似乎不起作用你确定你的意思是(而不是 [
  • var RE_NUMBERS = new RegExp("^(04\d{8})|(\+\d{12})$");
  • 你能给我一些测试字符串,让我的正则表达式不起作用吗?
【解决方案2】:
RegExp("^(\\+|04)[0-9]+$");

这是它的正确用途。

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 2013-04-14
    • 2023-01-11
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多