我正在寻找印度电话号码的正则表达式
正则表达式应该允许以下所有格式。
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
答案 0 :(得分:4)
你可以尝试
^\+?[0-9-]+$
对于字符串的开头和结尾,重要的部分是锚点^
和$
。我在开始时添加了\+?
,以匹配可选的+
。 +
需要进行转义,因为它是正则表达式中的特殊字符,?
之后使其成为可选项。
当然这是一个非常简单的模式,请注意,例如“-----”也是有效的。
答案 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))