【发布时间】:2012-03-24 17:05:25
【问题描述】:
正在寻找印度电话号码的正则表达式
正则表达式应允许以下所有格式。
固定电话号码
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,它会显示“无效的电话号码”
【问题讨论】:
-
你试过什么? Stack Overflow 不是其他人为您工作的网站。此外,对于那些不熟悉印度数字的人,您需要进一步解释规则是什么。多少位数,具体需要多少位数。
-
感谢 Phrogz,我尝试了数字格式的简单表达式为“[0-9 -]*”,似乎没有错误,但是当我在后面的代码中使用这个表达式时(在我的业务对象中) 如果我将值设置为“080-2404408”,则条件不满足并显示错误。但如果我在设计部分使用它,它工作正常,我在网络上尝试过,我发现只适用于固定电话格式或移动电话,但我需要同时允许它们,这就是我要问的......抱歉在这里打扰你.
-
@Shanish,您的正则表达式
[0-9 -]*将匹配“080-2404408”。如果您因此遇到错误,则问题出在其他地方。你已经got this answer! -
@Stema 当然,问题仍然是错误,当我检查该问题线程时,显示问题已关闭,这就是我在这里再次提出的问题
-
@Shanish,这个问题没有结束,你只需要提供更多信息。正如我们已经澄清的那样,问题不在于正则表达式,因此请显示您使用正则表达式的代码以及它不工作的地方。
标签: c# regex phone-number