0

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

  1. 只取 10 位以上的数字
  2. 使用 (,),-, 之类的符号

任何人都可以为此提供帮助吗?我试过了

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

但不工作。

4

2 回答 2

2

你可以看看下面的文章,它将帮助你建立这样的表达。

于 2012-04-19T06:54:04.637 回答
1

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

我认为你的错误是你在你的角色集中放了太多东西。您+在其中有 3 次符号,看起来您也尝试使用集合内的量词,这是不允许的。字符集相当于单字符交替。所以,[abc]是等价的a|b|c

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

+()-,

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

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

显然你不想要哪个(是吗?)

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

希望我在这里提供的信息足以让您入门,如果您还有更多问题......好吧,这就是我们在这里的目的,所以请走开。

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

测试工具

有用的信息

于 2012-04-19T16:50:49.730 回答