常用表达

时间:2013-02-11 04:18:36

标签: regex

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

通过规则:

  1. 相同的特殊字符(包括空格)永远不会连续出现两次,例如(( )) ++ --都将无效。
  2. 字符串必须以+00
  3. 开头
  4. 开口支架必须始终使用一个右括号并包含一个大于1位的数字,例如(1) (12) (123)等等是可以接受的,而() )( ( )是不可接受的。
  5. 我可以使用^([0][0]|[+])

    锻炼第2点

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

试一试:

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

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

请记住,您已经包含了一个奇怪的情况,其中字符串+将匹配。我不确定这是故意的。

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