0

我必须验证一些用户输入,并且只能接受 0-9 之间的数字以及特殊字符- ( ) +和空格。

通过规则:

  1. 同一个特殊字符(包括空格)不能连续出现两次,例如(( )) ++ --全部无效。
  2. 字符串必须以 a+00
  3. 一个左括号必须总是在一个右括号之前并包含一个大于 1 位的数字,例如(1) (12) (123)etc... 是可以接受的,而() )( ( )是不可接受的。

我可以锻炼第 2 点^([0][0]|[+])

4

1 回答 1

-1

试一试:

^(00|\+(?!\+))(\+(?!\+)|(\-(?!\-))|( (?! ))|(\([1-9][0-9]*\)))*$

它完全按照您指定的方式遵循您的每条规则。如果你没有完全阐明你的规则,我很难给你一个准确的正则表达式,但假设你写下了确切的规则,这应该有效!

+请记住,您已经包含了要匹配字符串的奇怪情况。我不确定那是故意的。

这个正则表达式自由地使用了负前瞻。请务必访问 www.regular-expressions.info 和 www.regexpal.com 以提高您的正则表达式技能!

于 2013-02-15T22:03:15.650 回答