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

时间:2012-03-07 06:42:50

标签: c# regex phone-number

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

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

for landline no

0802404408
080-2404408
+91802404408
+91-802404408

for mobile no

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

4 个答案:

答案 0 :(得分:4)

你可以尝试

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

here on Regexr

对于字符串的开头和结尾,重要的部分是锚点^$。我在开始时添加了\+?,以匹配可选的++需要进行转义,因为它是正则表达式中的特殊字符,?之后使其成为可选项。

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

答案 1 :(得分:2)

对于以下RegEx工作提供的示例:

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

答案 2 :(得分:0)

您可以使用其他网站作为参考,例如http://www.jslab.dk/tools.regex.php为您的要求生成正则表达式,或下载此软件的试用版RegexMagic

正则表达式生成器

答案 3 :(得分:0)

导入 mystr =“”“ 8147708287 08147708287 +918147708287 + 91-8147708287 “”“

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