我正在使用正则表达式^(\+91|[0]?)\d{10}$进行电话号码验证。我想要下面的输出。

+911234567891 - valid
01234567891 - valid
1234567891 - valid
0123456789 - should be invalid as I want 10 digits after 0.

请建议更改正则表达式模式
提前致谢

最佳答案

您的^(\+91|[0]?)\d{10}$模式匹配+91或可选的0,然后匹配任何10位数字。这意味着任何10位数字的字符串都将通过测试。您需要确保在+910之后允许使用10位数字,或者确保第一位数字是19,其余仅9位数字。

您可以使用

^(?:(?:\+91|0)\d{10}|[1-9]\d{9})$

参见regex demo

详细信息
  • ^-字符串
  • 的开始
  • (?:(?:\+91|0)\d{10}|[1-9]\d{9})-2种替代方法:
  • (?:\+91|0)\d{10}-+910,然后是任意10位数字
  • |-或
  • [1-9]\d{9}-从19的一个数字,然后是任意9个数字
  • $-字符串结尾。
  • 关于javascript - 自定义电话号码正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46565360/

    10-10 03:07