电话号码正则表达式验证

4
需要验证由逗号分隔的电话号码,它可以以国家代码作为起始参数。我需要在前端进行临时验证,例如验证不同的号码。
  1. 带有国家代码的号码(最小长度和最大长度应指定):+919845098450
  2. 不带国家代码的号码(最小长度和最大长度应指定):9845098450
这些号码由逗号分隔(+919845098450,9845098450等),所以目前我已经为单个电话号码完成了验证。
^([+])?[0-9()\-#+]*$

以逗号分隔

^([+])?[,\d{9}]*$

但是当输入以逗号结尾时,上述正则表达式没有显示错误
我需要在jquery/javascript中为逗号分隔的数字执行此操作。
如果可能的话,我需要指定有和没有国家代码的最小和最大长度。
感谢您的帮助。
1个回答

7
你可以尝试这个:
/^(?:\+\d{2})?\d{10}(?:,(?:\+\d{2})?\d{10})*$/.test(str);

演示

  • (?:\+\d{2})?用于匹配可选的国家代码。
  • \d{10}用于匹配10位数字。
  • (?:,(?:\+\d{2})?\d{10})*用于匹配零个或多个后续电话号码。

它显示“+919845098450、9845098450、+91897654234”没有匹配项。你能再检查一下吗? - Madhukar Hebbar
1
因为最后一位(不包括国家代码)只有9个数字。 - Avinash Raj
如果您不关心上面的数字,则将\d{10}替换为\d+ - Avinash Raj
谢谢,它运行良好。如果不存在 (+) 只有国家代码附加,我们该怎么做才能实现相同的效果呢? 例如:919845098450。 - Madhukar Hebbar
1
just add ? next to \+ - Avinash Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接