“通用”电话号码的基本正则表达式
我需要一个正则表达式(用于ASP .NET网站)来validation电话号码。 它应该是灵活的,唯一的限制是:
- 应该至少9位数
- 没有字母
- 可以包括空格,连字符,单个(+)
我搜索过SO和Regexlib.com,但我得到了更多限制的表达,例如英国电话或美国等。
最好让用户填写他的国家,然后为该国家申请正则表达式。 每个国家/地区都有自己的电话号码格式。
^\s*\+?\s*([0-9][\s-]*){9,}$
分解:
^ # Start of the string \s* # Ignore leading whitespace \+? # An optional plus \s* # followed by an optional space or multiple spaces ( [0-9] # A digit [\s-]* # followed by an optional space or dash or more than one of those ) {9,} # That appears nine or more times $ # End of the string
我更喜欢用后一种方式编写正则表达式,因为它将来更容易阅读和修改; 大多数语言都有一个需要为其设置的标志,例如C#中的RegexOptions.IgnorePatternWhitespace
。
\+?[\d- ]{9,}
这将匹配数字,可选择以加号开头,然后至少九个字符长,用短划线和空格。
虽然这意味着破折号和空格会计入九个字符。 我会删除破折号和空格然后使用
\+?[\d]{9,}
^ [0-9- +] + $
@"^(?:\+?1[-. ]?)?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"
这是我使用的。 这将处理大多数情况下的通用电话号码validation。
这个是超级通用的,只允许给定电话号码中的字符,包括#。 它忽略了任何格式模式。
@"^([\(\)\+0-9\s\-\#]+)$"
- 错误:无法在服务器上启动调试
- 未处理的exception未被Global.asaxerror handling程序或自定义IHttpModuleerror handling程序捕获
- ASP.NET从bin文件夹加载非托管dll
- ASP.Net Core 2.1中的身份:自定义AccountController
- 没有配置身份validation处理程序来validation该方案:Microsoft.AspNet.Identity.External
- 无法在C#ASP.NET中绑定多部分标识符“TextBox1.Text”?
- C#:asp.net 3.5:反序列化JSON – 如何获取每个对象字符串?
- 好的做法是在方法中多使用一个RETURN语句吗?
- 如何从CLR线程池而不是ASP.NET池创建ASP.NET页面中的线程?