字符串必须匹配来自

时间:2016-07-15 14:10:17

标签: javascript regex

我正在尝试编写一个匹配的正则表达式,如果它只包含[ - + ./()]和数字。非数字不得有两个连续的匹配。该字符串也必须包含7位数字。

  • ((无效。
  • (也无效
  • (1234567)+有效且
  • ()1+34564+0也有效

我写了以下正则表达式: /^(([()/.+ -])\1?(?!\2)|\d)*$/

对我不起作用的部分是必填数字。我不知道如何完成正则表达式。正则表达式应该如何寻找上述规则?

2 个答案:

答案 0 :(得分:2)

您可以使用前瞻来验证7位数的存在:

(?=\D*(\d\D*){7}$)

放置在正则表达式的开头,它将确保匹配的字符串包含正好7位数字。

作为一个整体正则表达式,我会使用^(?=\D*(\d\D*){7}$)(?:(?:([-()+./])(?!\2))|\d)*。你可以尝试here

答案 1 :(得分:2)

我认为这可以胜任:

^(?:(?:([-+./()])(?!\1))*\d){7}(?:([-+./()])(?!\2))*$