我有电话号码的文本框。我需要验证它。我的要求是
- 只取 10 位以上的数字
- 使用 (,),-, 之类的符号
任何人都可以为此提供帮助吗?我试过了
^[\d{10,14} +\s +\( +\)-]+$
但不工作。
我有电话号码的文本框。我需要验证它。我的要求是
任何人都可以为此提供帮助吗?我试过了
^[\d{10,14} +\s +\( +\)-]+$
但不工作。
你可以看看下面的文章,它将帮助你建立这样的表达。
你还没有说你的正则表达式有什么问题(为什么它没有按预期工作),但我猜问题是它的匹配程度远远超过它应该匹配的程度。即它将匹配您集合中所有字符中的一个或多个(而不是仅在 10 到 14 个之间)。
我认为你的错误是你在你的角色集中放了太多东西。您+
在其中有 3 次符号,看起来您也尝试使用集合内的量词,这是不允许的。字符集相当于单字符交替。所以,[abc]
是等价的a|b|c
。
我假设您希望输入介于 10 到 14 个数字之间,同时仍然允许以下字符的任何数字(零个或多个):
+()-,
正如其他一些人所建议的那样,您可以将所需的字符放在一个集合中,然后像这样指定量词:^[0-9()-,+]{10,14}$
. 这几乎可以让你到达那里。唯一的问题是它允许 10 到 14 个这些字符中的任何一个,所以它会成功匹配这个:
,,,,,++()---
显然你不想要哪个(是吗?)
因此,为了更好地解决这个问题,您需要更具体地了解允许的内容以及允许在主题中的什么位置。因为我不确切知道你想要匹配什么,所以我不能带你走得更远。
希望我在这里提供的信息足以让您入门,如果您还有更多问题......好吧,这就是我们在这里的目的,所以请走开。
为了帮助您学习,以下是一些您可能会觉得有用的资源(这是可用资源的一小部分,所以请继续搜索自己):
测试工具
有用的信息