/ / Povoliť rozsah jedno- a dvojmiestnych čísel pomocou regexu? - javascript, regex, validácia, dosah

Povoliť rozsah jedno- a dvojmiestnych čísel pomocou regexu? - javascript, regex, validácia, rozsah

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ď č. 1

Myslím, že to potrebujete:

^((?:d+(?:-d+)*)(?:,s(?:d+(?:-d+)*))*)$

demonštrácie

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`