简体   繁体   中英

Validate comma separated numbers

I have to check if a string has this pattern: 1,2,10,11 .

The rules are:

  • It may be a sequence like: 1 or 1,2 or 1,2,n+1 . Many numbers user wants;
  • The number must be followed by a comma but can't ends with it, like: 1, ;
  • The number can have 1 or 2 digits;
  • No other character but number and comma, no space or whatever;
  • No need to check numbers sequence, this is not the point.

What I have tried is:

  • (\\d{1,2})(,) : This code checks for a 1, sentence and returns true no metters what is on the rest of the string, like 1,afasfs ;
  • I've tried look ahead: (\\d{1,2})(?=(,)) but it accepts the above case too;
  • The both cases above I can't apply ^ and $ because it fails on right scenarios like: 1,2,3 .

What I don't know is how to test the entire string. All my tests only checks a part of it(eg 1, ) not the entire string.

Note: I'm using JavaScript test() function. Don't know if is the right one, but I believe that it is.

You can try this regex:

/^(\d{1,2},)*\d{1,2}$/

Details:

^           - Line start
\d{1,2}     - 1 or 2 digit number
\d{1,2},    - 1 or 2 digit number followed by a comma
(\d{1,2},)* - 0 or more of 1/2 digit number followed by a comma character
\d{1,2}     - 1 or 2 digit number
$           - Line end

正则表达式可视化

per OP

The number must be followed by a comma

so a little modification to anubhava's pattern /^(\\d{1,2},)+\\d{1,2}$/ otherwise it will validate single or double digits only like 1 or 10

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM