我想为我的ASP.NET网站创建一个基于正则表达式的属性,以检查指定的电话号码是否有效。 它必须让这些模式通过:
+3630 1234 567
06 30 1234 567
0630 1234 567
061 123 456
06 1 123 456
所以,最重要的是第一个字符可以是'+',但这不是必需的,之后只有数字和空格。
我尝试了以下内容,但没有运气。
public class PhoneNumberAttribute : RegularExpressionAttribute
{
public PhoneNumberAttribute()
:base(@"^\+?[0-9 ]")
{ }
}
答案 0 :(得分:3)
你的正则表达式目前在字符串的开头接受一个可选的+
符号(到目前为止是好的),但只有一个数字或空格。您需要允许更多数字/空格,为此,您需要添加量词。这里使用的好词是+
量词,表示一个或多个:
^\+?[0-9 ]+
现在,它也会接受其他字符,所以也要添加一个行结束锚,以便正则表达式检查整个字符串:
^\+?[0-9 ]+$
应该这样做。如果您有更多规则(例如没有连续的空格,有限的数字位数等),则必须修改正则表达式。
答案 1 :(得分:0)
您可以尝试使用libphonenumber - https://github.com/erezak/libphonenumber-csharp