印度电话号码的正则表达式

本文关键字:正则表达式 电话号码 | 更新日期: 2023-09-27 18:26:56

am正在寻找印度电话号码的正则表达式

正则表达式应该允许以下所有格式。

对于没有的固定电话

0802404408
080-2404408
+91802404408
+91-802404408

对于无的移动设备

8147708287
08147708287
+918147708287
+91-8147708287

有人能帮我吗,提前谢谢

我的代码是

[RegexValidator("[0-9 -]*"
, MessageTemplateResourceName = "INVALID_PHONE"
, MessageTemplateResourceType = typeof(ValidatioinErrors))]
public string Phone
{
        get { return phone; }
        set { phone = value; }
}
public bool IsValid()
    {
        return Validation.Validate<Class_name>(this).IsValid;
    }
    public ValidationResults ValResults
    {
        get
        {
            return Validation.Validate<Class_name>(this);
        }
    }

对于这个验证问题,我刚刚提到

using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

在我的命名空间中,在UI部分,表达式运行良好,但在如上所述的代码中,如果我将值给定为080-2404408

印度电话号码的正则表达式

,它将显示"无效的电话号码"

您可以尝试

^'+?[0-9-]+$

在Regexr 上查看

重要的部分是用于字符串的开始和结束的锚^$。我在开始时还添加了'+?,以匹配可选的++需要转义,因为它是正则表达式中的一个特殊字符,之后的?使其成为可选字符。

当然,这是一个非常简单的模式,请注意,例如"-----"也是有效的。

对于以下RegEx工作的示例:

/^(?:'+91(?:-)?|0'd{2,4}-|0|)'d{7,10}$/

导入remystr="quot;814770828708147708287+918147708287+91-814708287"quot"

print(re.findall(r'''b91-*''d{10}',mystr))