如何设计数字的正则表达式模式?

用户名

我正在使用正则表达式模式来验证输入,但是我不确定如何包括()和-符号。

说明:不必填写输入字符串。如果填写完毕,则必须有5个数字,并且输入不能以26开头。此外,输入必须接受括号和破折号,并且可以将其放置在输入的任何部分。我最多接受10个字符

尝试过:

(^(?!26)((\d){5}))?

仅适用于:-空输入-十位数字,例如0123456789-如果开始时有26,也将拒绝,例如2651234567

另外,尝试包含-和(),但此模式根本不起作用

(^(?!26)(\-\(\))((\d){5}))?

Valid inputs:
(12345)--
---12)567)
12333
-1-2--3-45
(()))12345
((12345
(-)65768-
(4)1-2-35

Invalid inputs:
26123---
(26)897---
-26333----
26
26(((())
26------
26--345
26)88-76
267-9

我发现讨论了一个用于电话号码验证的综合正则表达式,它很有帮助,但我仍然无法完全匹配我的输入内容。

狮子18

您正在使用Java风格的正则表达式。正确的正则表达式模式为:

^(?!26)([-()]*\d){5}[-()]*$

这将使您输入的内容不能以26开头。但是,您的帖子没有指定是否可能是--2)6-218(它不是以26开头,但是前两位数字是26)。如果是这种情况,那么您将需要:

^(?![-()]*2[-()]*6)([-()]*\d){5}[-()]*$

最多10个字符应在输入上验证maxlength=10

编辑:正如@ zx81所指出的,我有一些不必要的转义。我不知道我在想什么,对不起。但是,此正则表达式模式不接受空字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章