正则表达式验证器

时间:2012-04-19 06:42:21

标签: c# asp.net regex visual-studio

我有电话号码的文本框。我需要验证它。我的要求是

  1. 仅使用超过10个数字的数字
  2. 使用(,), - ,
  3. 等符号

    任何人都可以为此帮助。我试过

    ^[\d{10,14} +\s +\( +\)-]+$
    

    但没有工作。

2 个答案:

答案 0 :(得分:2)

您可以查看following article,它将帮助您构建此类表达式。

答案 1 :(得分:1)

你还没有说你的正则表达式有什么问题(为什么它没有按预期工作)但我猜测问题是它的匹配程度远远超过预期。即它将匹配您集合中所有字符中的一个或多个(而不是仅仅在10到14之间)。

我认为你错了,因为你在character set中已经过多了。你有3次+符号,看起来你也试图在集合中使用量词,这是不允许的。字符集相当于单个字符alternations。因此,[abc]相当于a|b|c

我假设您希望输入介于10到14之间,同时仍然允许以下字符中的任意数字(零个或多个):

+()-,

正如其他人所建议的那样,你可以把你想要的字符放在一个集合中,然后像这样指定量词:^[0-9()-,+]{10,14}$。这几乎可以帮助你。唯一的问题是,它允许这些字符中的任何一个中的10到14个,所以它会成功匹配:

,,,,,++()---

显然你不想要(你呢?)

因此,为了更好地解决这个问题,您需要更具体地说明允许的内容以及允许的主题位置。因为我不确切地知道你想要匹配什么,所以我不能再把你带走了。

希望我在这里提供的信息应该足以让你开始,如果你有更多的问题......那就是我们所有人都在这里,所以请你离开。

为了帮助您学习,以下是您可能会发现有用的一些资源(这是可用资源的一小部分,所以请继续搜索自己):

测试工具

有用的信息