1

我想为我的 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 ]")
    { }
}
4

2 回答 2

3

您的正则表达式当前接受+字符串开头的可选符号(目前为止很好),但只有一个数字或空格。您需要允许更多数字/空格,为此,您需要添加一个量词。在这里使用的一个好方法是+量词,表示一个或多个:

^\+?[0-9 ]+

现在,它还将接受其他字符,因此还要添加一个行尾锚,以便正则表达式检查整个字符串:

^\+?[0-9 ]+$

那应该这样做。如果您有更多规则(例如没有连续的空格、有限的位数等),则必须修改正则表达式。

于 2013-09-07T15:25:41.967 回答
0

你可以试试 libphonenumber - https://github.com/erezak/libphonenumber-csharp

于 2013-09-09T03:19:20.900 回答