正则表达式匹配由\ n分隔的字符串中的一系列数字(仅限一个字符串)

时间:2018-02-13 04:43:20

标签: javascript regex

我需要测试一个字符串(Javascript)(在textarea中输入)。像这样:

111-11111
22-2222
3333333-33
...

这是我使用的表达式:

/(\d+-\d+\n*)+/

这个想法是:整个\d+-\d+\n*组(匹配111-11111 \ n)必须至少重复一次

这适用于字符串,例如:

111-1111

111-1111\n

但每当我尝试时:

111-1111
222

它也通过了,这是错误的。

我该如何纠正?

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个:

/\d+-\d+\n*/g

答案 1 :(得分:1)

我想你想要一个像这样的正则表达式:

(\d+-\d+\s*)+(?![\s\S])

[Regex Demo ]

在你的模式之后,它不会接受任何其他字符。

  

注意:

     
      
  • 我使用\s来覆盖任何空白字符,例如\n\r\t。您可以使用\n对其进行更严格的约定或[\n\r]
  •   
  • [\s\S]将涵盖涉及空白字符和非空白字符的任何字符。
  •   
  • (?!)是一个负面展望,它将检查不包含您的标准。
  •