简体   繁体   中英

Regex for numbers, commas and whitespaces

I need a RegEx that allow the strings that start with numbers separated by comma, finishes with a number (or withspaces after the number) and allow also whitespaces between the number and the comma. Eg var str= '1 , 8,9, 88' has to be accetpted while var str2="1 2, 5" has not to be accetped. I tried with var regEx= "^[0-9\\,\\s]+$" but doing like this it accepts the strings that end with a comma and the strings that have two numbers not separated by comma. Any ideas?

EDIT:

Example of string accepted:

str1= "1,2,3,4"
str2= "1 , 2,3,9"
str3= "  8 , 44, 3  , 11"

Example of string to be discarded:

str4="1, 2,"
str5=", 1,2,"
str6="1,2 3,4"

You could account for the spaces before and after the comma using \\s (or just match a space only because \\s also matches a newline) to match a whitespace character and use a repeating pattern to match a comma and 1+ digits:

^\s*\d+(?:\s*,\s*\d+)*\s*$
  • ^ Start of string
  • \\s*\\d+ Match 0+ whitespace chars and 1+ digits
  • (?: Non capturing group
    • \\s*,\\s*\\d+ Match 0+ whitespace chars, and comma, 0+ whitespace chars and 1+ digits
  • )* Close non capturing group and repeat 0+ times
  • \\s*$ Match 1+ whitespace chars and assert end of string.

Regex demo

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