S nižšie uvedeným rozsahom regexusa zhodujú alebo nezodpovedajú, čo je v poriadku podľa očakávania. Jediným problémom, ktorý mám, je, keď mám rozmedzie 2-10 alebo 8-12 (jednopísmenné až dvojciferné), potom tento vzor nie je zhodný
Príklady
1 zápas
1-2 zápas
-2 nezodpovedá
1, 2-3, 4, 5-7 zápas
1 2 3 nezodpovedá
1-2-2 nezodpovedá
Zápas 10-15
2-10 sa nezhoduje // toto by malo byť zhodné, ale nezodpovedá vzoru uvedenému nižšie
var patt1 = new RegExp("^(\s*\d+\s*\-\s*\d+\s*,?|\s*\d+\s*,?)+$");
odpovede:
1 pre odpoveď č. 1Myslím, že to potrebujete:
^((?:d+(?:-d+)*)(?:,s(?:d+(?:-d+)*))*)$
vstup
1
1-2
-2
1, 2-3, 4, 5-7
1 2, 3
1-2-2
10-15
2-10
Výkon
MATCH 1
1. `1`
MATCH 2
1. `1-2`
MATCH 3
1. `1, 2-3, 4, 5-7`
MATCH 4
1. `1-2-2`
MATCH 5
1. `10-15`
MATCH 6
1. `2-10`