Regex для чисел, запятых и пробелов - PullRequest
1 голос
/ 25 июня 2019

Мне нужен RegEx, который разрешает строки, начинающиеся с чисел, разделенных запятой, заканчивающиеся цифрой (или пробелами после числа) и допускающие также пробелы между числом и запятой.Например, var str= '1 , 8,9, 88' должен быть принят, в то время как var str2="1 2, 5" не должен быть принят.Я пробовал с var regEx= "^[0-9\,\s]+$", но, поступая так, он принимает строки, заканчивающиеся запятой, и строки, у которых два числа не разделены запятой.Есть идеи?

РЕДАКТИРОВАТЬ:

Пример принятой строки:

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

Пример строки, которую нужно отбросить:

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

1 Ответ

1 голос
/ 25 июня 2019

Вы можете учесть пробелы до и после запятой, используя \s (или просто совпадать с пробелом только потому, что \s также соответствует символу новой строки), чтобы соответствовать символу пробела и использовать повторяющийся шаблон для совпадения с запятой и 1+ цифры:

^\s*\d+(?:\s*,\s*\d+)*\s*$
  • ^ Начало строки
  • \s*\d+ Совпадение с 0+ пробелами и 1+ цифрами
  • (?: Без захватагруппа
    • \s*,\s*\d+ Совпадение 0+ пробельных символов и запятой, 0+ пробельных символов и 1+ цифр
  • )* Закрыть группу без захвата и повторить 0+времена
  • \s*$ Соответствие 1+ пробелам и утверждение конца строки.

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...