【发布时间】:2011-11-08 11:51:20
【问题描述】:
string Phno=txt_EditPhno.Text;
bool check = false;
Regex regexObj = new Regex(@"^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$");
if ((String.IsNullOrEmpty(Phno))||(regexObj.IsMatch(Phno)))
{}
我正在使用这个正则表达式允许电话号码允许,空格,-,()但它不允许上面提到的任何符号,是我使用的正则表达式错误还是我在做错误的方式
【问题讨论】:
-
这似乎工作正常:gskinner.com/RegExr/?2v4uj 你能提供一个不匹配的示例输入吗?
-
稍微偏离主题但相关,为了轻松自定义客户端验证屏蔽输入字段,请查看 AjaxControlToolkit MaskedEdit 扩展程序和验证。 asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/MaskedEdit/…
-
有什么问题?给定 444-333-2423 分机,它似乎可以进入 if 语句。 42425、444-424-2424 或 (444) 422-2424。 regexpal.com
-
查看您的代码和表达式,似乎有效。似乎一个回答者和一个评论者已经测试了代码 - 我会发布更多围绕您上面发布的代码的代码,或者添加一些检查以确保您的数据实际上 i> 获取的是您认为 正在获取的数据(例如,输入文本框是否实际包含名称?还是空白?),因为问题似乎不在代码中你发布了。
标签: c# asp.net regex validation